npm 原理集合

33 篇文章 0 订阅
17 篇文章 0 订阅

npm install 运行原理

npm install会检测是否存在package-lock.json文件

一、没有lock文件
1、根据package.json分析依赖关系。
2、从registry仓库中下载压缩包(如果我们设置了镜像,那么会从镜像服务器下载压缩包)。
3、获取到压缩包后会对压缩包进行缓存(从npm5开始有的)。
4、将压缩包解压到项目的node_modules文件夹中(require的查找顺序会在该包下面查找)。
二、有lock文件
1、检测lock中包的版本是否和package.json中一致。
2、不一致,那么会重新构建依赖关系,直接会走顶层的流程。
3、一致的情况下,会去优先查找缓存。
4、没有找到,会从registry仓库下载,直接走顶层流程。
5、查找到,会获取缓存中的压缩文件,并且将压缩文件解压到node_modules文件夹中。

npm run xxx 运行原理

1、执行 npm run xxx 时,会先从当前目录下的node_modules/.bin中去查找对应的可执行程序执行。
2、如果无法找到,就会在npm的全局安装路径进行查找,也就是npm i -g xxx时安装的路径。
3、如果还找不到,就会从系统环境变量中查找。
4、还没到就会报错。

例:npm run serve,会运行package.json中script, "serve": "vue-cli-service serve"
执行过程:
会调用执行node_modules/.bin/vue-cli-service,
其中node_modules/.bin,会被临时加入到系统环境变量,
所以package.json中可以省略,直接写成vue-cli-service。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_孤傲_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值