当项目目录中同时具有“ package.json”目录和“ node_modules”目录时,“ npm install”有什么作用?
它会覆盖现有模块吗?它会更新它们还是什么都不做?
答案 0 :(得分:2)
来自官方Algorithm Section中的NPM Docs:
- 从磁盘加载现有的node_modules树
- 克隆树
- 获取package.json和分类的元数据并将其添加到克隆中
- 遍历克隆并添加所有缺少的依赖项
- 依赖项将尽可能靠近顶部添加
- 不破坏任何其他模块
- 将原始树与克隆的树进行比较,并列出
- 将其中一个转化为另一个的操作
- 执行所有动作,最深的优先
- 各种动作是安装,更新,删除和移动
因此,不会再次覆盖每个现有软件包。
它获取所有包,并比较包树和包文件之间的元数据。