npm install 不适用于 package-lock.json 中的内容?

问题描述

我在 MacOS Catalina 上安装了 Node v10.22.0、npm 6.14.6。

我从一个包含 package-lock.json 的 git repo 开始,它指定了 @truffle 依赖项,没有 node_modules 文件夹,没有 package.json。克隆存储库后,我运行 npm install 来安装依赖项。 npm 文档说

如果包有包锁...,安装 依赖项将由此驱动

令人惊讶的是,它实际上安装了 8 个与我的项目无关的软件包:des5-extes6-iteratores6-symbolext、{{ 1}},next-tick AND 它用包含对这 8 个包的依赖项的新包覆盖 type

如果我覆盖 package-lock.json 并启动 package-lock.json,它会重新执行相同的操作。

问题:

  1. 发生了什么?
  2. 如何让 npm install 正确填充 npm install

解决方法

使用 npm ci 根据您的锁定文件安装依赖项。有关此命令的更多详细信息,请查看 this answer,它可以回答您的问题。