npm 加速之 yarn cnpm pnpm
npm 加速之 yarn cnpm pnpm
有没有感觉到使用 npm 的时候很慢? 安装速度 几Kb/s 不说, 还装着装着出错了, 奇奇怪怪的问题.
这种情况大多数还是因为网络的原因, 很多时候虽然 没有直接提示超时 , 但还是可能由于网络原因导致的不能正常提示, 比如断断续续的下载导致安装脚本不完整.
告别龟速一般有几种途径:
使用国内镜像 - 网速优化
所谓国内镜像, 简单来说就是把国外的资源复制一份到国内, 下载的时候从国内下载.
比较常用的的淘宝镜像, 可能用如下命令配置 npm 的镜像:npm config set registry=https://registry.npm.taobao.org
之后安装工具就会明显快得很多.
如果需要管理多个镜像地址, 可以使用 nrm 。
$ nrm ls # 查看所有镜像源, 带 * 号的是正在使用的
* npm ---- https://registry.npmjs.org/
cnpm --- http://r.cnpmjs.org/
nj ----- https://registry.nodejitsu.com/
npmMirror https://skimdb.npmjs.com/registry/
edunpm - http://registry.enpmjs.org/
$ nrm add taobao https://registry.npm.taobao.org/ # 添加镜像源
$ nrm use taobao # 切换镜像源为淘宝
$ nrm test taobao # 查看淘宝镜像的连接速度
使用缓存, 多线程, 锁… - 本地优化
一开始 npm 的依赖管理方式以及安装方式受到不少人的不满, 比如:
深层嵌套, 这会在一些对目录长度有限制的系统上出现问题.
不确定性, 安装时默认会升级小版本, 但很多软件小版本升级也不兼容, 导致重新安装时程序出错.
一些大厂或大牛视图解决类似问题, 开发了其他的管理器, 如 yarn cnpm pnpm ... , 但常用的就 yarn cnpm .
yarn 主要有以下特性:
- 离线模式, 如果您以前安装过软件包,则可以在没有Internet连接的情况下再次安装它。
- 确定性的, 无论安装顺序如何,都将以完全相同的方式在所有计算机上安装相同的依赖项。
- 网络性能, 可以有效地对请求进行排队,并避免请求瀑布,以最大程度地利用网络。
- 网络弹性, 失败的单个请求不会导致整个安装失败。失败时将自动重试请求。
- 平面模式, 将不匹配的依赖项版本解析为单个版本,以避免创建重复项。
yarn 与 npm 的使用命令有一些不同:
| npm | yarn |
|---|---|
| npm i | yarn |
| npm i react -S | yarn add react |
| npm un react -S | yarn remove react |
| npm i react -D | yarn add react -D |
| npm update -S | yarn upgrade |
cnpm 主要有以下特性:
- 自带淘宝镜像
- 简化安装信息
- 与 npm 一致的命令
注意
yarn:
- 使用方式不同, 别搞错
- 由于使用多线程, 在内存小的计算机上安装时, 安装途中会被 kill 掉
npm:
- 由于第三方的压力, npm 也进行了很多改进
- 发布自己的工具时, 建议使用 npm
扩展阅读
yarn: https://github.com/yarnpkg/yarn
cnpm: https://github.com/cnpm/cnpm
pnpm: https://github.com/pnpm/pnpm
文章来源
注: 本文来源于微信公众号 【乐玩nodejs npm工具库】。
npm 加速之 yarn cnpm pnpm的更多相关文章
- 一文看懂npm、yarn、pnpm之间的区别
文作者对比了当前主流的包管理工具npm.yarn.pnpm之间的区别,并提出了合适的使用建议,以下为译文: NPM npm是Node.js能够如此成功的主要原因之一.npm团队做了很多的工作,以确保n ...
- [转] 一文看懂npm、yarn、pnpm之间的区别
[From] http://geek.csdn.net/news/detail/197339 原文:Understanding differences between npm, yarn and pn ...
- npm命令 VS yarn命令
npm yarn 说明 npm init yarn init 在项目中引导创建一个package.json文件 npm install yarn install/yarn 安装所有依赖包(依据pa ...
- 解决create-react-app 后 npm start or yarn start 中出现 的webpack版本问题
解决create-react-app 后 npm start or yarn start 中出现 的webpack版本问题 错误提示信息 There might be a problem with t ...
- npm、yarn、pnpm
它们都是当前主流的包管理工具 pnpm:https://github.com/pnpm/pnpm yarn: https://github.com/yarnpkg/yarn npm: https:// ...
- npm淘宝镜像cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
- npm 加速方案
使用npm install 包,是见比较头疼的事情,比较慢,很难等,经过探索,还是发现有办法加速的,方法有两个,让我一一道来: 1. 在npm 后添加参数 --registry=... 指定镜像源地址 ...
- 如何使用淘宝 NPM 镜像,安装CNPM的方法
npm 版本需要大于 3.0 前提:安装好npm 环境:Linux 直接在linux下输入命令: npm install -g cnpm --registry=https://registry.npm ...
- 设置npm taobao源和使用cnpm的不同
一开始,我直接把npm的源设置为taobao源. 使用中,没发现有什么问题,直到,我要装vue-devtools的时候,出问题了. 在使用,,npm i 时,到下载cypress时,怎么都下载不下来. ...
随机推荐
- Intel重大漏洞之Meltdown和Spectre
史上最大漏洞危机:影响所有 iPhone.Android.PC 设备,修复困难重重 近日,英特尔的日子可并不好过. 作为全球知名芯片制造商,任何有关英特尔芯片漏洞的问题都会导致全球上百万设备遭受牵连. ...
- ELK快速入门(五)配置nginx代理kibana
ELK快速入门五-配置nginx代理kibana 由于kibana界面默认没有安全认证界面,为了保证安全,通过nginx进行代理并设置访问认证. 配置kibana [root@linux-elk1 ~ ...
- XML炸弹
XML炸弹XML document type definition (DTD)可以定义entity,DTD可以出现在外部文件或文件内部.利用DTD可以产生XML炸弹,也就是能迅速占用大量内存的文件,如 ...
- Java精通并发-Lock与synchronized关键字在底层的区别及实例分析
在上两次中已经将Lock这个接口的整个官方说明进行了阅读,这次来了解一下它的一个非常重要的实现类: 啥叫“可重入”呢?其实是指一个线程已经拿到了锁,然后该线程还能再次获取这把锁,接下来在了解它之前先用 ...
- c#每天生成漂亮桌面背景、英文名言、翻译
阅读目录 一.1. 下载bing.com壁纸查询API 二.2. 解析返回的壁纸JSON信息 三.3. 下载完成的壁纸图片 阅读目录 .NET生成漂亮桌面背景 .NET生成漂亮桌面背景 总结 回到目录 ...
- 微服务学习之路(三)——实现RPC远程服务调用
RPC(Remote Producedure Call)调用原理:服务消费者称为客户端,服务提供者称为服务端,处于不同网络地址,需要建立网络连接.建立连接后,双方还必须按照某种约定的协议进行网络通讯— ...
- 关于ArrayList
List概述 List是一个列表结构抽象定义,有序的,可对其中每个元素的插入位置进行精确地控制,可以通过索引来访问元素,遍历元素.包括函数的有:添加元素,删除元素,判断是否包含元素等等重要函数. ...
- DSL的本质:领域构建的半成品
DSL的本质是使用通用和专用语言构建领域的半成品: 实际上是构建了一个世界观.小宇宙的半成品: 这个半成品包含领域的基本要素.联系方式和基本运行规律: 开发者使用这个半成品平台进行开发能达到事半功倍. ...
- 「GXOI / GZOI2019」宝牌一大堆 (DP)
题意 LOJ传送门 题解 可以发现「七对子」 和 「国士无双」直接暴力就行了. 唯一的就是剩下的"3*4+2". 考试的时候写了个爆搜剪枝,开了O2有50pts.写的时候发现可以D ...
- OpenCV实现"你的名字"滤镜
这是一个比较有意思的demo,用到了播送融合,具体效果见下图: 文件结构如图所示 主程序代码 #include"stdafx.h" #include<opencv2/phot ...