【发布时间】:2020-11-21 17:48:19
【问题描述】:
我有几个依赖项,它们总是需要在最新的特定主要版本上。所以我将它们添加到 package.json 依赖项列表中,如下所示:
{
...
dependencies: {
"A": "^12.0.0",
"B": "^12.0.0",
"C": "^12.0.0",
...
假设在 package-lock.json 中,包 B 的版本为 12.2.2。包 B 的新版本与版本 12.3.0 一起到达,并且不存在其他包的更新。
当我执行npm update 时,package.json 文件更改为以下内容:
{
...
dependencies: {
"A": "^12.0.0",
"B": "12.3.0",
"C": "^12.0.0",
...
我不希望这种情况发生。我希望 package-lock.json 和 node_modules 得到更新,但 package.json 对于包 B 保持不变。
我尝试了npm update --no-save,但这只会更新 node_modules 而不会更新 package-lock.json。
我怎样才能做到这一点?
【问题讨论】:
-
你怎么会想要这个?您是否有其他不想要此行为的依赖项?锁定文件在这里真的对你有帮助吗?你能只恢复对包文件的更改吗?
-
我希望这种情况永远发生。当我使用 tilda "^" 指定版本并执行
npm update时,我不希望它们被锁定在我的 package.json 中的特定版本上。因为如果第二次更新到达,那么npm update将不会获得第二次更新。现在,每当我想做npm update时,我也需要去更新 package.json 文件。 -
这不是真的,因为 ^12.3.0 仍然允许从那里升级到 13 以下的任何东西
-
这不是我所期望的。你有任何特定的 NPM 配置设置吗?
-
据我所知(例如
mkdir temp && cd $_ && npm init -y && npm i eslint@7.3 && jq '.dependencies.eslint' package.json && npm up eslint && jq '.dependencies.eslint' package.json,它显示"^7.3.1"然后是"^7.5.0")不是会发生什么。请给minimal reproducible example。
标签: npm npm-install npm-update