为什么“npm install”在我的“package-lock.json”文件中用“node_modules”作为我的包的前缀?

问题描述

我以前从未发生过这种情况,但是现在,当我在应用程序的根目录中 npm install 时,我的 package-lock.jsonnode_modules/ 更新了所有包。这是什么原因造成的?

这是我在运行 npm i 之前得到的

before running command

这是我运行 npm i 后得到的

after running command

解决方法

您使用的是什么版本的 npm(和 node)?

npm v7 已发布,并随 node v15 一起提供。由于对工作区的新支持,这引入了一些重大变化......引入了package-lock.json v2。

我要冒险了:我怀疑您在本地运行 npm v7 而您的 EC2 实例不是。

https://github.blog/2020-10-13-presenting-v7-0-0-of-the-npm-cli/

,

我能够通过运行在我的计算机上从 OP 的问题中重现问题

npm install -g npm@7

然后运行

npx create-react-app my-app

检查 my-app/package-lock.json 确认行为改变。

然后我使用

npm降级到6.14.11
npm install -g npm

已删除文件夹 my-app 并重复上述 create-react-app 步骤。这一次,检查 my-app/package-lock.json 确认了“正常”行为。