美文网首页前端交流圈
npm install之后发生了什么——npm安装机制

npm install之后发生了什么——npm安装机制

作者: lulu_c | 来源:发表于2021-10-19 11:57 被阅读0次

启动项目我们一般第一个执行的命令就是安装依赖包 npm install 。那么这个过程具体的执行流程是怎么样的呢?

安装流程

流程图

1.npm install执行后,会检查并获取npm配置,优先级为

项目级别的.npmrc文件 > 用户级别的.npmrc文件 > 全局的.npmrc文件 > npm内置的.npmrc文件

查看配置命令npm config ls -l

2.然后检查项目中是否有package-lock.json文件。

  • 如果有,检查package-lock.json和package.json中声明的依赖是否一致

    • 一致:直接使用 package-lock.json 中声明的依赖,从缓存或者网络中加载依赖
    • 不一致:各个版本的npm处理方式:


      image.png
  • 如果没有,根据package.json递归构建依赖树,然后根据依赖树下载完整的依赖资源,在下载时会检查是否有相关的资源缓存

    • 存在:将缓存资源解压到node_modules中
    • 不存在:从远程仓库下载资源包,并校验完整性,并添加到缓存,同时解压到node_modules中

最后生成package-lock.json文件。

构建依赖树时,不管是直接依赖还是子依赖,都会按照扁平化的原则,优先将其放置在node_modules根目录中(最新的npm规范),在这个过程中,如果遇到相同的模块,会检查已放置在依赖树中的模块是否符合新模块的版本范围,如果符合,则跳过,不符合,则在当前模块的node_modules下放置新模块

npm安装依赖时,会下载到缓存当中,然后解压到项目的node_modules中。
再次安装依赖的时候,会根据package-lock.json中存储的 integrity、version、name 信息生成一个唯一的 key,然后拿着key去目录中查找对应的缓存记录,如果有缓存资源,就会找到tar包的hash值,根据 hash 再去找缓存的 tar 包,并把对应的二进制文件解压到相应的项目 node_modules 下面,省去了网络下载资源的开销。

// 获取缓存位置
npm config get cache
// C:\Users\DB\AppData\Roaming\npm-cache

// 清除缓存
npm cache clean --force

另外_cacache 文件夹中不包含全局安装的包,所以想清除存在问题的包为全局安装包时,需用 npm uninstall -g <package>解决

参考资料:https://blog.csdn.net/h03580/article/details/116021091?spm=1001.2014.3001.5501

相关文章

  • Vue.js 学习之路(二)

    npm install npm install 模块安装机制简介 关于 npm install 模块安装机制的简介...

  • npm install之后发生了什么——npm安装机制

    启动项目我们一般第一个执行的命令就是安装依赖包 npm install 。那么这个过程具体的执行流程是怎么样的呢?...

  • vue 开始

    npm 工具 下载 npm 安装 vue, npm install vue 安装集成工具, npm install...

  • NPM指令

    NPM指令 升级npm npm install npm -g 安装模块 npm install

  • Hexo

    安装npm :yum install npminstall npm.png 安装Hexo :npm install...

  • npm install 安装机制及实现原理

    npm 安装机制 npm实现原理 (npm install命令发起后,根据工程定义决定是否执行preinstall...

  • Node 的生态NPM

    npm i 【npm install】 安装 npm install npm -g npm的三个部分 npm 官网...

  • Vue项目

    1、npm install 安装npm包问题: 1、npm install报错npm ERR Could not ...

  • 前端构建之npm包管理

    用过npm的都知道 npm install 默认安装到本地 npm install -g 安装到全局。 但npm ...

  • Yarn的介绍

    定位:包管理工具,替代npm 安装速度快,版本锁定,缓存机制 Yarn的安装:npm install yarn -...

网友评论

    本文标题:npm install之后发生了什么——npm安装机制

    本文链接:https://www.haomeiwen.com/subject/cufaoltx.html