npm-update 和 npm-install 可以给出不同的结果吗?
Posted
技术标签:
【中文标题】npm-update 和 npm-install 可以给出不同的结果吗?【英文标题】:Can npm-update and npm-install give different result? 【发布时间】:2018-09-11 20:18:23 【问题描述】:假设我们有 3 个具有以下依赖项的包:
C -> B@^1.0.0 和 B -> A@^1.0.0
(模块 C 依赖于仅模块 B 版本 1.0.0 及更高版本;模块 B 依赖于模块 A 版本 1.0.0 及以上;)
现在我正在执行以下步骤:
-
模块 C 中的 npm-install(结果:node_modules 包含 A@^1.0.0 和 B@^1.0.0)
模块A高版本的npm-publish:A@^1.0.1
模块 C 中的 npm-update(结果:node_modules 包含 A@^1.0.0 和 B@^1.0.0)--- 模块未更改!
但是,如果我要清理 node_modules 然后再次 npm-install 模块 C,我会得到 node_modules 包含 A@^1.0.1 和 B@^1.0.0
有什么方法可以在不删除并重新安装的情况下获得完整更新的 node_modules? 如果不是,我管理依赖项的方式有什么问题?我不想显式添加所有依赖树,所以 node-update 将起作用【问题讨论】:
【参考方案1】:npm update
尊重语义版本控制,如果您有 ^
依赖项,它不会更新软件包的主要版本。
^
在依赖项上的字面意思是只能更新到次要版本 - 因为主要版本包含重大更改。
此命令会将列出的所有包更新到最新版本(由标签配置指定),尊重 semver。
来自the docs
【讨论】:
我们相应地解决了这个问题。这里的重点是我们的子依赖没有在根应用程序中更新(直接依赖是)以上是关于npm-update 和 npm-install 可以给出不同的结果吗?的主要内容,如果未能解决你的问题,请参考以下文章