2

当我安装 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="
     },

我确认我配置的注册表是 npmjs.org:

$ npm config get registry
https://registry.npmjs.org/
4

1 回答 1

4

开发人员的 npm 注册表可能registry.npm.taobao.org在他们运行时设置为npm install jsonlines. 一些用户已将 npm 配置为使用 taobao 注册表来获得地理邻近性。

删除node_modulespackage-lock.json重新运行可以npm install修复它。


提示:使用lockfile-lint防止它再次发生。

  1. npm install --save-dev lockfile-lint
  2. 运行lockfile-lint到你的 lint 脚本,最好是在pre-push git hook 中。
  3. 将此配置添加到您的package.json
  "lockfile-lint": {
    "allowed-schemes": [
      "https:"
    ],
    "allowed-hosts": [
      "npm"
    ],
    "empty-hostname": false,
    "type": "npm ",
    "path": "package-lock.json"
  },

于 2020-11-11T18:25:17.083 回答