一尘子、道法自然、博客园、前端

npm install 下载依赖的过程

  • 首先检查.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中的依赖版本冲突
      • 如果不存在冲突,则直接跳过获取包信息,去缓存中查找依赖包,步骤一致
posted @ 2022-07-19 10:50  一尘子!  阅读(402)  评论(0编辑  收藏  举报
Live2D
返回顶端