npm install命令都执行了哪些内容

  1. 执行项目本身的preInstall
  2. 遍历出项目的依赖树
    a. 首先确定项目的首层依赖(dependencies和devDependencies下的模块)
    b. 从首层依赖的每个模块开始,npm开启多进程遍历更深层级的模块,最终生成一颗完整的依赖树
    c. 获取模块,并更新依赖树:获取版本信息 --> 获取模块实体 --> 获取模块依赖 (如果有依赖的话,再来一遍)
  3. 将依赖树扁平化处理,并去除重复的模块
    依赖中可能会包含很多重复的模块,从npm3开始,会有一个dedupe的过程,它会遍历所有的节点然后放到根节点下方,发现有重复的模块就删除掉。
    重复模块的定义:模块的模块名相同且semver有交集(每个semver都对应一个版本的允许范围,如果两个模块的semver有交集,就能找到一个兼容的版本)
  4. 安装模块:更新node_modules,并执行模块中的钩子函数(preinstall、install、postinstall)
  5. 执行项目的钩子函数(install、postinstall、prepublish、prepare)
  6. 生成或者更新版本描述文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值