node的其他包

cnpm

官網地址:https://npm.taobao.org/

爲解決國內用戶連接npm registry緩慢的問題,淘寶搭建了自己的registry,即淘寶npm鏡像源

過去,npm沒有提供修改registry的功能,因此,淘寶提供了一個CLI工具即cnpm,它支持除了npm publish以外的所有命令,只不過連接的是淘寶鏡像源

如今,npm已經支持修改registry了,可能cnpm唯一的作用就是和npm共存,即如果要使用官方源,則使用npm,如果使用淘寶源,則使用cnpm

nvm

nvm並非包管理器,它是用於管理多個node版本的工具

在實際的開發中,可能會出現多個項目分別使用的是不同的node版本,在這種場景下,管理不同的node版本就顯得尤爲重要

nvm就是用於切換版本的一個工具

下載和安裝

最新版下載地址:https://github.com/coreybutler/nvm-windows/releases

下載nvm-setup.zip後,直接安裝

使用nvm

nvm提供了CLI工具,用於管理node版本

在終端中輸入nvm,以查看各種可用命令

爲了加快下載速度,建議設置淘寶鏡像
node淘寶鏡像:https://npm.taobao.org/mirrors/node/
npm淘寶鏡像:https://npm.taobao.org/mirrors/npm/

pnpm

pnpm是一種新起的包管理器,從npm的下載量看,目前還沒有超過yarn,但它的實現方式值得主流包管理器學習,某些開發者極力推薦使用pnpm

從結果上來看,它具有以下優勢:

  1. 目前,安裝效率高於npm和yarn的最新版
  2. 極其簡潔的node_modules目錄
  3. 避免了開發時使用間接依賴的問題
  4. 能極大的降低磁盤空間的佔用

安裝和使用

全局安裝pnpm

npm install -g pnpm

之後在使用時,只需要把npm替換爲pnpm即可

如果要執行安裝在本地的CLI,可以使用pnpx,它和 npx 的功能完全一樣,唯一不同的是,在使用pnpx執行一個需要安裝的命令時,會使用pnpm進行安裝

比如npx mocha執行本地的mocha命令時,如果mocha沒有安裝,則npx會自動的、臨時的安裝mocha,安裝好後,自動運行mocha命令

pnpm原理

  1. 同 yarn 和 npm 一樣,pnpm 仍然使用緩存來保存已經安裝過的包,以及使用 pnpm-lock.yaml 來記錄詳細的依賴版本

  2. 不同於 yarn 和 npm, pnpm 使用符號鏈接和硬鏈接(可將它們想象成快捷方式)的做法來放置依賴,從而規避了從緩存中拷貝文件的時間,使得安裝和卸載的速度更快

  3. 由於使用了符號鏈接和硬鏈接,pnpm可以規避windows操作系統路徑過長的問題,因此,它選擇使用樹形的依賴結果,有着幾乎完美的依賴管理。也因爲如此,項目中只能使用直接依賴,而不能使用間接依賴

注意事項

由於 pnpm 會改動 node_modules 目錄結構,使得每個包只能使用直接依賴,而不能使用間接依賴,因此,如果使用 pnpm 安裝的包中包含間接依賴,則會出現問題(現在不會了,除非使用了絕對路徑)

由於 pnpm 超高的安裝卸載效率,越來越多的包開始修正之前的間接依賴代碼

來源:渡一教育

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章