首页 > 解决方案 > 当“node_modules”退出时,“npm install”是什么?

问题描述

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

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

标签: javascriptnode.jsnpm

解决方案


来自官方NPM 文档中的算法部分


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

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


推荐阅读