如何解决npm 会忽略它自己的范围私有注册表配置,包括 npm 6.x 和 npm 7.x
我已经使用 ~/.npmrc
文件设置了我们的自定义范围以指向我们的 npm 注册表:
@ourscope:registry=http://gitlab.custom.domain/api/v4/packages/npm/
由 npm get
输出确认:
; cli configs
metrics-registry = "https://registry.npmjs.org/"
scope = ""
user-agent = "npm/6.14.12 node/v14.16.1 linux x64"
; userconfig /home/user/.npmrc
@ourscope:registry = "http://gitlab.custom.domain/api/v4/packages/npm/"
但是当人们尝试安装软件包时,NPM 会完全忽略这一点。
$ npm i @ourscope/a-package --verbose
npm info it worked if it ends with ok
npm verb cli [
npm verb cli '/home/user/.nvm/versions/node/v14.16.1/bin/node',npm verb cli '/home/user/.nvm/versions/node/v14.16.1/bin/npm',npm verb cli 'i',npm verb cli '@ourscope/a-package',npm verb cli '--verbose'
npm verb cli ]
npm info using npm@6.14.12
npm info using node@v14.16.1
npm verb npm-session 03c5c2581b269e7a
npm http fetch GET 404 https://registry.npmjs.org/@ourscope/a-package 1165ms
npm http fetch GET 404 https://registry.npmjs.org/@ourscope/a-package 118ms
npm timing stage:rollbackFailedOptional Completed in 3ms
npm timing stage:runTopLevelLifecycles Completed in 1341ms
npm verb stack Error: 404 Not Found - GET https://registry.npmjs.org/@ourscope/a-package - Not found
npm verb stack at /home/user/.nvm/versions/node/v14.16.1/lib/node_modules/npm/node_modules/npm-registry-fetch/check-response.js:117:15
npm verb stack at processTicksAndRejections (internal/process/task_queues.js:93:5)
npm verb statusCode 404
npm verb pkgid @ourscope/a-package@latest
npm verb cwd /projects/ourscope/lib/a-package-2
npm verb Linux 5.4.0-77-generic
npm verb argv "/home/user/.nvm/versions/node/v14.16.1/bin/node" "/home/user/.nvm/versions/node/v14.16.1/bin/npm" "i" "@ourscope/a-package" "--verbose"
npm verb node v14.16.1
npm verb npm v6.14.12
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/@ourscope/a-package - Not found
npm ERR! 404
npm ERR! 404 '@ourscope/a-package@latest' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball,folder,http url,or git url.
npm verb exit [ 1,true ]
npm timing npm Completed in 1592ms
即甚至没有尝试解决配置的范围。 也没有任何锁定文件,这个操作是在一个干净的目录中进行的。
知道 NPM 有什么问题吗?
更新。我升级到最新的npm@7.20.0,结果还是一样。
更新 2. 不仅 NPM 忽略配置,当通过命令行传递注册表时,它不会尝试检查本地存储库:
$ npm i @ourscope/a-package --registry http://gitlab.our.domain/api/v4/packages/npm/
....
npm http fetch GET 404 https://registry.npmjs.org/@ourscope/a-package 355ms (cache skip)
即第一次获取到 npmjs.com。
更新 3. 提交了错误报告 https://github.com/npm/cli/issues/3554
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。