【问题标题】:What does "npm install" when "node_modules" exits?当“node_modules”退出时,“npm install”是什么?
【发布时间】:2023-04-04 05:59:01
【问题描述】:

当您的项目目录中有“package.json”和“node_modules”目录时,“npm install”会产生什么影响?

它会覆盖现有模块吗?它是更新它们还是什么都不做?

【问题讨论】:

  • npm install 只安装 package.json 中提到的所有内容,如果已经安装,那么它将不会更新,除非版本更改/包名称更改
  • @iamrajshah 啊,好吧......它将本地模块的版本与 npm-repository 中的当前版本进行比较?当存储库版本更高时,它会进行更新吗?感谢您的评论!
  • 是啊!!!存储库版本/软件包更新

标签: javascript node.js npm


【解决方案1】:

来自Algorithm Section官方NPM Docs


  • 从磁盘加载现有的 node_modules 树
  • 克隆树
  • 获取 package.json 和各种元数据并将其添加到克隆中
  • 遍历克隆并添加任何缺少的依赖项
    • 依赖项将添加到尽可能靠近顶部的位置
    • 不破坏任何其他模块
  • 将原始树与克隆树进行比较并列出
  • 将一种转换为另一种的操作
  • 执行所有动作,最深的优先
    • 动作种类有安装、更新、删除和移动

所以不,它不会再次覆盖每个现有的包。
它获取所有包并比较包树和包文件之间的元数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-10
    • 2017-11-11
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 2011-11-07
    相关资源
    最近更新 更多