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中的依赖版本冲突
- 如果不存在冲突,则直接跳过获取包信息,去缓存中查找依赖包,步骤一致
- 没有lock文件
npm install 下载依赖的过程的更多相关文章
- angular2使用官网npm install下载依赖失败的处理方法
上一两个月在学习angular2,在下载依赖阶段看官网是直接自动下载的,[npm install] 就能把依赖全部弄下来.不过作为新手的我,是倒腾来倒腾去都倒不出来,因为老是报同一个错.官网也还有手动 ...
- npm install 安装依赖报错
npm ERR! Unexpected end of JSON input while parsing near '...2.4.8","karma":"~0. ...
- EACCES: permission denied,mkdir … npm install 安装依赖问题解决
强哥最近在用hugeGraph图库做二次开发的时候,在打包的时遇到前端项目打包失败的问题: cwebp-bin@4.0.0 postinstall /home/hugegraph/my-hugegra ...
- vue 使用npm install安装依赖失败 【问题分析与解决】
1 进入项目根目录,先通过 npm install 命令安装项目所需依赖,再通过 vue ui 命令打开 Vue Cli 提供的图形化界面,选择项目所在文件夹将项目导入. 出现问题 npm insta ...
- vue项目 npm install 安装依赖 特别慢 解决办法
使用NPM(Node.js包管理工具)安装依赖时速度特别慢,为了安装Express,执行命令后两个多小时都没安装成功,最后只能取消安装,笔者20M带宽,应该不是我网络的原因,后来在网上找了好久才找到一 ...
- npm install报错Unhandled rejection RangeError: Maximum call stack size exceededill install
故障 在使用npm install下载依赖的时候报错Unhandled rejection RangeError: Maximum call stack size exceededill instal ...
- npm常用命令学习(npm install -D,semver版本规范, npm进行版本管理的最佳实践用法)
什么是npm npm有两层含义.一层含义是Node的开放式模块登记和管理系统,网址为npmjs.org.另一层含义是Node默认的模块管理器,是一个命令行下的软件,用来安装和管理Node模块. npm ...
- npm install失败或者进度卡住解决办法 以及 nrm的使用
今天在使用npm install安装url-loader时,遇到下载进度条停止问题 因为已经提前更换了 淘宝的镜像,应该不是网络问题,通过 npm config set loglevel info 显 ...
- `npm install`卡住不动,使用`sudo npm install`就可以下载依赖包
当我在项目中执行npm install的时候,等了几分钟也没有打印信息出来,竟然卡住不动了. 我取消之后再执行sudo npm install发现是可以安装的.只是安装的node_models文件夹不 ...
- Vue安装依赖npm install时报错问题解决方法
1.vue的安装依赖于node.js,要确保你的计算机上已安装过node.js. 可进入cmd编辑器,输入命令 node -v进行查看.出现版本信息即成功!没有则从浏览器上面下载安装即可,没有安 ...
随机推荐
- PCI-5565系列反射内存卡 反射内存交换机
主要性能:1路发射,一路接收光纤高速网络2.125GHz.最大256个节点.在板128MByte SDRAM.光纤通讯协议不占用CPU资源.动态包长,每个包4 到 64 个字节.33MHz PCI 3 ...
- 咚咚咚,你的王国之泪已上线「GitHub 热点速览」
本周最大的热点,莫过于 Mojo 语言了,几大媒体均有报道这门兼顾 Python 优点和性能的新语言.当然还有凭借 Switch 游戏<塞尔达传说·王国之泪>登上热榜,获得 3,500+ ...
- 基于.Net5+Vue+iView前后端分离通用权限开源系统
在Github上,.Net通用的权限框架非常多,功能也都比较强大,但是对于很多初学者来说,想要从零学习框架的搭建,就比较困难了. 所以,今天给大家推荐一套比较简单的前后端分离通用权限系统. 项目简介 ...
- 2022-06-25:给定一个正数n, 表示有0~n-1号任务, 给定一个长度为n的数组time,time[i]表示i号任务做完的时间, 给定一个二维数组matrix, matrix[j] = {a,
2022-06-25:给定一个正数n, 表示有0~n-1号任务, 给定一个长度为n的数组time,time[i]表示i号任务做完的时间, 给定一个二维数组matrix, matrix[j] = {a, ...
- SpringMVC 简单的开始
SpringMVC简单的开始 利用Spring模板配置写一个web项目. 1.核心配置文件(模板代码) <?xml version="1.0" encoding=" ...
- npm ERR! shasum check failed for
nmp install 爆了一片错 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: ios-deploy@1.9.4 (node_modules\wee ...
- PlayWright(一)
1.如何安装? 安装playwright只需要一条命令,就是pip安装命令,命令如下: pip install playwright 注:playwright需要Python3.7或更新的版本 2.然 ...
- odoo开发教程十七:controller
一:controller简述 odoo里面的controller相似于springMVC,也是根据url来控制请求,把请求处理映射到具体某个方法上的. 类比于springmvc中,根据请求,在请求处理 ...
- 详解RocketMQ 顺序消费机制
摘要:顺序消息是指对于一个指定的 Topic ,消息严格按照先进先出(FIFO)的原则进行消息发布和消费,即先发布的消息先消费,后发布的消息后消费. 本文分享自华为云社区<RocketMQ 顺序 ...
- JavaScript如何解决单线程缺陷——webWorker
解决JavaScript单线程问题--webWorkers 参考文档 使用 Web Workers - Web API 接口参考 | MDN (mozilla.org) MDN的介绍为: Web Wo ...