当我安装 npm 包jsonlines时,它被解析为镜像注册表registry.npm.taobao.org而不是registry.npmjs.org. 它仅针对 执行此操作jsonlines。这是什么原因造成的?
这是我的 package-lock.json 的差异。原始的“已解析”值是在另一个开发人员安装该包时创建的:
"jsonlines": {
"version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsonlines/-/jsonlines-0.1.1.tgz",
+ "resolved": "https://registry.npm.taobao.org/jsonlines/download/jsonlines-0.1.1.tgz",
"integrity": "sha1-T80kbcXQ44aRkHxEqwAveC0dlMw="
},
Run Code Online (Sandbox Code Playgroud)
我确认我配置的注册表是 npmjs.org:
$ npm config get registry
https://registry.npmjs.org/
Run Code Online (Sandbox Code Playgroud)
开发人员的 npm 注册表可能已设置registry.npm.taobao.org为运行时的npm install jsonlines. 一些用户将 npm 配置为使用淘宝注册表以实现地理邻近。
删除node_modules并package-lock.json重新运行npm install即可修复。
提示:使用lockfile-lint来防止它再次发生。
npm install --save-dev lockfile-lintlockfile-lint您的 lint 脚本,最好是在预推送git hook 中。package.json: "lockfile-lint": {
"allowed-schemes": [
"https:"
],
"allowed-hosts": [
"npm"
],
"empty-hostname": false,
"type": "npm ",
"path": "package-lock.json"
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1122 次 |
| 最近记录: |