tasks/node_version.js
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://github.com/creationix/nvm#installation), or update the NVM path.');
          }
        } else {
          callback();
        }
      });
    }
Check for NVM