npm-update和npm-install可以给出不同的结果吗?

时间:2018-04-02 15:43:10

标签: npm npm-install npm-update

假设我们有3个包含以下依赖项的包:

C - > B @ ^ 1.0.0和 B - >的 A @ ^ 1.0.0

(模块 C 仅依赖 模块 B 版本1.0.0及更高版本;模块 B 取决于模块 A 版本1.0.0及更高版本;)

现在我正在执行以下步骤:

  1. npm-install在模块C中(结果:node_modules包含A@^1.0.0和B@^1.0.0)
  2. npm-发布更高版本的模块A:A@^1.0.1
  3. 模块C中的
  4. npm-update(结果:node_modules包含 A@^1.0.0 和B@^1.0.0)---模块没有改变!
  5. 但是,如果我正在清理node_modules然后再次npm-install模块C,我得到的node_modules包含 A@^1.0.1 和B@^1.0.0

    • 有没有办法可以在没有删除的情况下获得完整更新的node_modules并重新安装?
    • 如果没有,我管理依赖项的方式有什么问题?我不希望显式添加所有依赖树,因此node-update可以正常工作

1 个答案:

答案 0 :(得分:0)

npm update尊重语义版本控制,如果您有^依赖项,它将不会更新主要版本的包。

关于依赖关系的

^字面意思是只更新到次要版本是唯一的 - 因为主要版本包含重大更改。

  

此命令将更新所有列出的最新版本的软件包(由标记配置指定),尊重semver。

来自the docs