【问题标题】:Why does "npm install" prefix my packages with "node_modules" in my "package-lock.json" file?为什么“npm install”在我的“package-lock.json”文件中为我的包添加“node_modules”前缀?
【发布时间】:2021-01-19 00:00:46
【问题描述】:

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

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

这是我运行npm i后得到的结果

【问题讨论】:

  • 最近在package.jsonajvamqp-connection-manager 中有什么变化吗?
  • @MilanTenk 这发生在我所有的包裹上——不仅仅是这两个。当我在我的机器上本地 npm installnpm uninstall(任何更新 package-lock.json 的东西)时,就会发生这种情况。当我在公司的 ec2 实例上这样做时,它不会发生。

标签: npm prefix package-lock.json


【解决方案1】:

您使用的是什么版本的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/

【讨论】:

  • 谢谢 Nicholas,这正是问题所在。我正在运行最新版本的节点。我用nvm use v15.6.0 降级,npm i 不再在我的包前面加上node_modules/
【解决方案2】:

我能够通过运行在我的计算机上重现 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 确认“正常”行为。

【讨论】:

    猜你喜欢
    • 2017-12-14
    • 2019-09-27
    • 2020-07-16
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2014-10-08
    相关资源
    最近更新 更多