npm install 下载依赖的过程

2023-08-05

首先检查.npmrc文件,项目级.npmrc文件>用户级的.npmrc文件>全局性的.npmrc文件>npm内置的.npmrc文件
是否有lock文件
没有lock文件

从npm远程仓库获取包的信息
根据package.json构建依赖
构建依赖树时,不论是直接依赖还是子依赖的依赖,优先放置在node_modules目录
当遇到相同模块时,判断已放置依赖树的模块是否符合新模块的版本范围,若是不符合,放置在当前模块的node_modules的目录中
注意这一步,只是建立逻辑上的依赖树,并没有开始下载依赖,后面会根据这个依赖结构去下载或拿到缓存中的依赖包
在缓存中查找每个依赖的包
缓存中不存在

从npm远程仓库下载依赖
检验是否通过
校验不通过

重新下载
校验通过
将下载的包复制到npm缓存目录
将下载的包根据依赖结构解压到node_modules目录中
缓存中存在
将缓存中的包根据依赖结构解压到node_modules目录中
将包解压到node_modules目录中
生成lock文件
有lock文件
检查package.json中的依赖版本是否和package-lock.json中的依赖版本冲突
如果不存在冲突,则直接跳过获取包信息,去缓存中查找依赖包,步骤一致

npm install 下载依赖的过程的相关教程结束。