diff options
Diffstat (limited to 'deps/npm/lib/fetch-package-metadata.js')
-rw-r--r-- | deps/npm/lib/fetch-package-metadata.js | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/deps/npm/lib/fetch-package-metadata.js b/deps/npm/lib/fetch-package-metadata.js index d4f02bb278..85322304d5 100644 --- a/deps/npm/lib/fetch-package-metadata.js +++ b/deps/npm/lib/fetch-package-metadata.js @@ -122,7 +122,15 @@ function fetchNamedPackageData (dep, next) { } function pickVersionFromRegistryDocument (pkg) { if (!regCache[url]) regCache[url] = pkg - var versions = Object.keys(pkg.versions).sort(semver.rcompare) + var versions = Object.keys(pkg.versions) + + var invalidVersions = versions.filter(function (v) { return !semver.valid(v) }) + if (invalidVersions.length > 0) { + log.warn('pickVersion', 'The package %s has invalid semver-version(s): %s. This usually only happens for unofficial private registries. ' + + 'You should delete or re-publish the invalid versions.', pkg.name, invalidVersions.join(', ')) + } + + versions = versions.filter(function (v) { return semver.valid(v) }).sort(semver.rcompare) if (dep.type === 'tag') { var tagVersion = pkg['dist-tags'][dep.spec] @@ -169,6 +177,7 @@ function fetchNamedPackageData (dep, next) { : 'No valid targets found.' var er = new Error('No compatible version found: ' + dep.raw + '\n' + targets) + er.code = 'ETARGET' return next(er) } })) |