function(callback) {
      var command = '. ' + nvmPath;

      childProcess.exec(command, cmdOpts, function(err, stdout, stderr) {
        if (stderr.indexOf('No such file or directory') !== -1) {
          if (nvmPath === home + '/.nvm/nvm.sh') {
            nvmPath = home + '/nvm/nvm.sh';
            nvmInit = '. ' + nvmPath + ' && ';
            checkNVM(callback);
          } else {
            grunt[options.errorLevel]('Expected node ' + expected + ', but found v' + actual + '\nNVM does not appear to be installed.\nPlease install (https://github.com/creationix/nvm#installation), or update the NVM path.');
          }
        } else {
          callback();
        }
      });
    }
function(callback) {
      var command = '. ' + nvmPath;

      childProcess.exec(command, cmdOpts, function(err, stdout, stderr) {
        if (stderr.indexOf('No such file or directory') !== -1) {
          if (nvmPath === home + '/.nvm/nvm.sh') {
            nvmPath = home + '/nvm/nvm.sh';
            nvmInit = '. ' + nvmPath + ' && ';
            checkNVM(callback);
          } else {
            grunt[options.errorLevel]('Expected node ' + expected + ', but found v' + actual + '\nNVM does not appear to be installed.\nPlease install (https:
          }
        } else {
          callback();
        }
      });
    }
function ( callback ) { var command = '. ' + nvmPath ; childProcess . exec ( command , cmdOpts , function ( err , stdout , stderr ) { if ( stderr . indexOf ( 'No such file or directory' ) !== - 1 ) { if ( nvmPath === home + '/.nvm/nvm.sh' ) { nvmPath = home + '/nvm/nvm.sh' ; nvmInit = '. ' + nvmPath + ' && ' ; checkNVM ( callback ) ; } else { grunt [ options . errorLevel ] ( 'Expected node ' + expected + ', but found v' + actual + '\nNVM does not appear to be installed.\nPlease install (https://github.com/creationix/nvm#installation), or update the NVM path.' ) ; } } else { callback ( ) ; } } ) ; }
Check for NVM
Check for NVM