使用 npm 时 package-lock.json 中的模块重复?

Buc*_*nes 9 node.js npm

我注意到在节点 15 和 npm 7 上,当我从节点 14 切换时,同一包有重复的条目。一是apollo-server-core哪个都好。另一个是node_modules/apollo-server-core我在使用 npm 7 运行时添加的。另请注意,对于我拥有的每个依赖项,都会创建npm install另一个带有前缀的条目。node_modules/这是 npm 7 特意添加的还是一个错误?

例如:

使用 npm 7 时创建

"node_modules/apollo-server-core": {
      "version": "2.19.0",
      "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.19.0.tgz",
      "integrity": "sha512-2aMKUVPyNbomJQaG2tkpfqvp1Tfgxgkdr7nX5zHudYNSzsPrHw+CcYlCbIVFFI/mTZsjoK9czNq1qerFRxZbJw==",
      "dependencies": {
        "@apollographql/apollo-tools": "^0.4.3",
        "@apollographql/graphql-playground-html": "1.6.26",
        "@types/graphql-upload": "^8.0.0",
        "@types/ws": "^7.0.0",
        "apollo-cache-control": "^0.11.4",
        "apollo-datasource": "^0.7.2",
        "apollo-graphql": "^0.6.0",
        "apollo-reporting-protobuf": "^0.6.1",
        "apollo-server-caching": "^0.5.2",
        "apollo-server-env": "^2.4.5",
        "apollo-server-errors": "^2.4.2",
        "apollo-server-plugin-base": "^0.10.2",
        "apollo-server-types": "^0.6.1",
        "apollo-tracing": "^0.12.0",
        "async-retry": "^1.2.1",
        "fast-json-stable-stringify": "^2.0.0",
        "graphql-extensions": "^0.12.6",
        "graphql-tag": "^2.9.2",
        "graphql-tools": "^4.0.0",
        "graphql-upload": "^8.0.2",
        "loglevel": "^1.6.7",
        "lru-cache": "^5.0.0",
        "sha.js": "^2.4.11",
        "subscriptions-transport-ws": "^0.9.11",
        "uuid": "^8.0.0",
        "ws": "^6.0.0"
      },
      "engines": {
        "node": ">=6"
      }
    },
Run Code Online (Sandbox Code Playgroud)

通常的条目

"apollo-server-core": {
      "version": "2.19.0",
      "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.19.0.tgz",
      "integrity": "sha512-2aMKUVPyNbomJQaG2tkpfqvp1Tfgxgkdr7nX5zHudYNSzsPrHw+CcYlCbIVFFI/mTZsjoK9czNq1qerFRxZbJw==",
      "requires": {
        "@apollographql/apollo-tools": "^0.4.3",
        "@apollographql/graphql-playground-html": "1.6.26",
        "@types/graphql-upload": "^8.0.0",
        "@types/ws": "^7.0.0",
        "apollo-cache-control": "^0.11.4",
        "apollo-datasource": "^0.7.2",
        "apollo-graphql": "^0.6.0",
        "apollo-reporting-protobuf": "^0.6.1",
        "apollo-server-caching": "^0.5.2",
        "apollo-server-env": "^2.4.5",
        "apollo-server-errors": "^2.4.2",
        "apollo-server-plugin-base": "^0.10.2",
        "apollo-server-types": "^0.6.1",
        "apollo-tracing": "^0.12.0",
        "async-retry": "^1.2.1",
        "fast-json-stable-stringify": "^2.0.0",
        "graphql-extensions": "^0.12.6",
        "graphql-tag": "^2.9.2",
        "graphql-tools": "^4.0.0",
        "graphql-upload": "^8.0.2",
        "loglevel": "^1.6.7",
        "lru-cache": "^5.0.0",
        "sha.js": "^2.4.11",
        "subscriptions-transport-ws": "^0.9.11",
        "uuid": "^8.0.0",
        "ws": "^6.0.0"
      },
      "dependencies": {
        "apollo-datasource": {
          "version": "0.7.2",
          "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.2.tgz",
          "integrity": "sha512-ibnW+s4BMp4K2AgzLEtvzkjg7dJgCaw9M5b5N0YKNmeRZRnl/I/qBTQae648FsRKgMwTbRQIvBhQ0URUFAqFOw==",
          "requires": {
            "apollo-server-caching": "^0.5.2",
            "apollo-server-env": "^2.4.5"
          }
        },
        "apollo-server-caching": {
          "version": "0.5.2",
          "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.2.tgz",
          "integrity": "sha512-HUcP3TlgRsuGgeTOn8QMbkdx0hLPXyEJehZIPrcof0ATz7j7aTPA4at7gaiFHCo8gk07DaWYGB3PFgjboXRcWQ==",
          "requires": {
            "lru-cache": "^5.0.0"
          }
        },
        "fs-capacitor": {
          "version": "6.2.0",
          "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz",
          "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw=="
        },
        "graphql-upload": {
          "version": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz",
          "integrity": "sha512-zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==",
          "requires": {
            "busboy": "^0.3.1",
            "fs-capacitor": "^6.1.0",
            "http-errors": "^1.7.3",
            "isobject": "^4.0.0",
            "object-path": "^0.11.4"
          }
        },
        "http-errors": {
          "version": "1.8.0",
          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz",
          "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==",
          "requires": {
            "depd": "~1.1.2",
            "inherits": "2.0.4",
            "setprototypeof": "1.2.0",
            "statuses": ">= 1.5.0 < 2",
            "toidentifier": "1.0.0"
          }
        },
        "setprototypeof": {
          "version": "1.2.0",
          "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
          "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
        },
        "uuid": {
          "version": "8.3.2",
          "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
          "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
        },
        "ws": {
          "version": "6.2.1",
          "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
          "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
          "requires": {
            "async-limiter": "~1.0.0"
          }
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

tri*_*ine 5

npm 7对锁定文件格式进行了更改,以提高跨机器的构建一致性。

您看到的新条目(前缀为)位于早期版本的 npm 中不存在的"node_modules/"新密钥中。"packages"它们在旧密钥中重复,"dependencies"保留旧密钥是为了向后兼容旧的 npm 客户端。