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工具庫】。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM