in src/npm/hash-and-cache.js [83:111]
var generateHash = function (sourcePath, sourceFiles, sourceIgnore, hashSuffix, execCommand) {
  console.log("Generating Hash...");
  console.log("sourcePath: " + sourcePath);
  console.log("sourceFiles: " + sourceFiles);
  console.log("sourceIgnore: " + sourceIgnore);
  console.log("hashSuffix: " + hashSuffix);
  console.log("execCommand: " + execCommand);
  var files = getFileList(sourcePath, sourceFiles, sourceIgnore);
  console.log("Hashing " + files.length + " files...");
  var hashAlgorithm = crypto.createHash('sha256');
  files.forEach(function (file) {
    var filePath = path.join(sourcePath, file);
    hashAlgorithm.update(fs.readFileSync(filePath));
    hashAlgorithm.update(path.relative(sourcePath, filePath));
  });
  hashAlgorithm.update(hashSuffix);
  hashAlgorithm.update(execCommand);
  var hash = hashAlgorithm.digest('hex');
  console.log("Hash = " + hash);
  return hash;
}