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

Why does "npm install" prefix my packages with "node_modules" in my "package-lock.json" file?

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

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

这是我在 运行 npm i

之后得到的

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

npm v7 已发布,并与 node v15 一起发布。由于对 workspaces 的新支持,这引入了一些重大变化...引入了 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 确认了“正常”行为。