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的更多相关文章

  1. 一文看懂npm、yarn、pnpm之间的区别

    文作者对比了当前主流的包管理工具npm.yarn.pnpm之间的区别,并提出了合适的使用建议,以下为译文: NPM npm是Node.js能够如此成功的主要原因之一.npm团队做了很多的工作,以确保n ...

  2. [转] 一文看懂npm、yarn、pnpm之间的区别

    [From] http://geek.csdn.net/news/detail/197339 原文:Understanding differences between npm, yarn and pn ...

  3. npm命令 VS yarn命令

    npm yarn 说明 npm init yarn init  在项目中引导创建一个package.json文件 npm install yarn install/yarn  安装所有依赖包(依据pa ...

  4. 解决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 ...

  5. npm、yarn、pnpm

    它们都是当前主流的包管理工具 pnpm:https://github.com/pnpm/pnpm yarn: https://github.com/yarnpkg/yarn npm: https:// ...

  6. npm淘宝镜像cnpm

    npm install -g cnpm --registry=https://registry.npm.taobao.org

  7. npm 加速方案

    使用npm install 包,是见比较头疼的事情,比较慢,很难等,经过探索,还是发现有办法加速的,方法有两个,让我一一道来: 1. 在npm 后添加参数 --registry=... 指定镜像源地址 ...

  8. 如何使用淘宝 NPM 镜像,安装CNPM的方法

    npm 版本需要大于 3.0 前提:安装好npm 环境:Linux 直接在linux下输入命令: npm install -g cnpm --registry=https://registry.npm ...

  9. 设置npm taobao源和使用cnpm的不同

    一开始,我直接把npm的源设置为taobao源. 使用中,没发现有什么问题,直到,我要装vue-devtools的时候,出问题了. 在使用,,npm i 时,到下载cypress时,怎么都下载不下来. ...

随机推荐

  1. Cobbler--自动化部署

    Cobbler自动化部署 cobbler简介 Cobbler 可以用来快速建立 Linux 网络安装环境,它已将Linux网络安装的技术门槛,从大专以上文化水平,成功降低到了初中水平,连补鞋匠都能学会 ...

  2. PAT 乙级 1001.害死人不偿命的(3n+1)猜想 C++/Java

    1001 害死人不偿命的(3n+1)猜想 (15 分) 题目来源 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 ( 砍掉一半.这样一直反复 ...

  3. C++类库开发详解(转)

    前言:这是一篇总结性的文章,需要有一点C++和dll基本知识的基础,在网上查阅了很多资料感觉没有一篇详细.具体.全面的dll开发介绍,我这是根据最近项目和网上资料整理出来的,并附带实例的一个总结性的文 ...

  4. 项目Beta冲刺(团队)——05.28(6/7)

    项目Beta冲刺(团队)--05.28(6/7) 格式描述 课程名称:软件工程1916|W(福州大学) 作业要求:项目Beta冲刺(团队) 团队名称:为了交项目干杯 作业目标:记录Beta敏捷冲刺第6 ...

  5. Spring Boot 之:Actuator 监控

    在 Spring Boot 2.x 中为了安全,Actuator 只开放了两个端点 /actuator/health 和 /actuator/info.可以在配置文件中设置打开. Actuator 默 ...

  6. Day01~15 - Python语言基础

    Day01 - 初识Python Python简介 - Python的历史 / Python的优缺点 / Python的应用领域 搭建编程环境 - Windows环境 / Linux环境 / MacO ...

  7. TCP server 为什么一个端口可以建立多个连接?

    https://segmentfault.com/q/1010000003101541 如果是tcp client用同一个本地端口去连不同的两个服务器ip,连第二个时就会提示端口已被占用.但服务器的监 ...

  8. org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19

    在Maven上部署Struts2时,突然发生了如下错误,但是tomcat还能运行,发送错误的原因时Struts2的版本太高,和tomcat7不兼容. 开始Struts2用了2.5.20版本,后来换成2 ...

  9. 如何开发出优秀的APICloud应用

    APICloud定制平台项目实施规范 APICloud应用优化策略Top30 如何开发出运行体验良好.高性能的App 如何开发出客户满意.能够顺利交付的App 1. 引擎或模块问题: 遇到应用层无法解 ...

  10. 洛谷 P5408 【模板】第一类斯特林数·行

    传送门 首先,有 \[ x^{\overline n}=\sum_k\begin{bmatrix}{n\\ k}\end{bmatrix}x^{k}\\ \] 那么我们只需要求出\(x^{\overl ...