docs: function isCompatibleNpmPackage(pkgName) {
      if (pkgName !== 'cordova' && pkgName.indexOf('cordova@') !== 0) {
          return Q(NodeCompatibilityResult.Compatible);
      }
      
      // Get the version of npm and the version of cordova requested. If the
      // cordova version <= 5.3.3, and the Node version is 5.0.0, the build
      // is going to fail, but silently, so we need to be loud now.
      return getVersionForNpmPackage(pkgName).then(function (cordovaVersion) {
          if (!semver.valid(cordovaVersion)) {
              // Assume true, since we don't know what version this is and the npm install will probably fail anyway
              return Q(NodeCompatibilityResult.Compatible);
          }
          
          var nodeVersion = process.version;
          
          if (!semver.valid(nodeVersion)) {
              return Q(NodeCompatibilityResult.Compatible);
          }
          
          if (semver.lt(cordovaVersion, '5.4.0') && semver.gte(nodeVersion, '5.0.0')) {
              return Q(NodeCompatibilityResult.IncompatibleVersion5);
          } else if (process.platform == 'darwin' && semver.lt(cordovaVersion, '5.3.3') && semver.gte(nodeVersion, '4.0.0')) {
              return Q(NodeCompatibilityResult.IncompatibleVersion4Ios);
          } else {
              return Q(NodeCompatibilityResult.Compatible);
          }
      });
  }