diff --git a/lib/registry_for.js b/lib/registry_for.js new file mode 100644 index 0000000000..2befc69035 --- /dev/null +++ b/lib/registry_for.js @@ -0,0 +1,13 @@ +var registryUrl = require('registry-url') + +/* + * Returns the registry needed for a certain package. + */ + +module.exports = function registryFor (pkg) { + if (pkg.substr(0, 1) === '@') { + return registryUrl(pkg.split('/')[0]) + } else { + return registryUrl() + } +} diff --git a/lib/resolve/npm.js b/lib/resolve/npm.js index 0f89cf2eaa..43bdec0b9c 100644 --- a/lib/resolve/npm.js +++ b/lib/resolve/npm.js @@ -2,7 +2,7 @@ var join = require('path').join var url = require('url') var enc = global.encodeURIComponent var got = require('../got') -var config = require('../config') +var registryFor = require('../registry_for') /** * Resolves a package in the NPM registry. Done as part of `install()`. @@ -73,5 +73,5 @@ function toUri (pkg) { } } - return url.resolve(config.registry, uri) + return url.resolve(registryFor(pkg.name), uri) } diff --git a/package.json b/package.json index 269432c3f9..61c59d049b 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "observatory": "1.0.0", "rc": "1.1.6", "read-pkg-up": "1.0.1", + "registry-url": "3.0.3", "rimraf": "2.5.1", "semver": "5.1.0", "tar-fs": "1.9.0",