gpt4 book ai didi

node.js - 依赖版本不同步时如何对齐package.json和package-lock.json?

转载 作者:行者123 更新时间:2023-12-05 01:38:11 25 4
gpt4 key购买 nike

发生了什么

在 Package.json 中:

"dependencies": {
...
"node-sass": "^4.13.0"
...
}

运行 npm install

在 package-lock.json 中:

"node-sass": {
"version": "4.13.1",
...
}

我尝试过的

1.

删除:

  • package-lock.json
  • node_modules 目录

然后运行npm install

2.

删除:

  • package-lock.json
  • node_modules 目录

然后运行 ​​npm install --cache/temp/empty-cache

3.

删除:

  • package-lock.json
  • node_modules 目录

然后运行 ​​npm update

结果:node-sass 未被检测为可更新

4.

运行 npm install node-sass@4.13.1

这显然可以同步它们,但感觉不对,因为这可能会在我不知情的情况下发生在其他依赖项上。

问题

  • 如何在不手动安装 4.13.1 的情况下使 package.json 和 package-lock 恢复同步?
  • [奖励] 为什么 package-lock.json 总是安装和使用 4.13.1?
  • [奖励] 为什么 node-sass 没有被识别为需要更新?

[编辑]

如果有人有一个不涉及手动更新依赖项的答案,仍然会喜欢这个问题

最佳答案

那些依赖正是你所配置的:

在您的 package.json 中定义了 ^4.13.0^ 意味着您可以安装最新版本主要版本为 4 的模块。因此,当您运行 npm install 时,您将安装与 semver range 匹配的所有依赖项。 .你可以在semver中更深入.

如果你想锁定你需要编写的版本 "node-sass": "4.13.0" 在你的 package.json 并重新创建 package-lock.json

此外,要安装 package-lock.json 中的内容,您需要运行 npm ci .如果您运行 npm install,您将更新锁定文件中的依赖项(将被更新)


How align package.json and package-lock.json where dependency versions are out of sync?

重新生成包锁

例子:

npm init --yes
npm init fastify@2.0.0
// now package-lock has 2.0.0
rm -rf node_modules/
npm install
// now package-lock has 2.0.0 still
rm package-lock.json
npm install fastify@2.5.0 --no-save
npm install
// now package-lock has 2.5.0 (the version is loaded by node_modules tree)
rm package-lock.json
rm -rf node_modules/
npm install
// now package-lock has 2.11.0

因此,如果您的文件不同步“某些东西”,请在不使用锁定文件的情况下运行安装

关于node.js - 依赖版本不同步时如何对齐package.json和package-lock.json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59984863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com