長期以來,node 中自帶的包管理工具只有 npm, 作為官方指定工具,使用者眾多,從體驗上來講,卻是一般。
// 檢視當前映象源
npm config get registry
// 臨時修改
npm install 軟體名 --registry
// 全域性修改
npm config set registry
如果需要頻繁切換的話可以使用開源工具 nrm,更方便一些
npm install -g nrm
nrm ls // 列出可用的映象源
npm -----
cnpm ----
taobao -- /
nj ------
rednpm --
skimdb --
// 切換映象源
nrm use cnpm
// 測試速度
nrm test taobao
// 可以增加定製的源,特別適用於新增企業內部的私有源
nrm add // 刪除源
nrm del
搭建企業內網私有源的一種方案:cnpmjs架設
cnpm 這個是國內**映象,是為解決 npm 速度太慢的問題而產生的,控制台log 也清晰許多,但是它最大的問題是會忽視 package-lock.json 檔案,也就是說 你無法鎖定小版本,可能會導致依賴版本不一致引起的 bug,防止這個隱患則需要在 package.json 中就鎖定版本,如下:
特點:超級安全 在執行**之前,yarn 會通過演算法校驗每個安裝包的完整性。
超級可靠 使用詳細、簡潔的鎖檔案格式和明確的安裝演算法,yarn 能夠保證在不同系統上無差異的工作。
離線模式 如果你以前安裝過某個包,再次安裝時可以在沒有任何網際網路連線的情況下進行。
確定性 不管安裝順序如何,相同的依賴關係將在每台機器上以相同的方式安裝。
網路效能 yarn 有效地對請求進行排隊處理,避免發起的請求如瀑布般傾瀉,以便最大限度地利用網路資源。
相同的軟體包 從 npm 安裝軟體包並保持相同的包管理流程。
網路彈性重試機制
確保單個請求失敗並不會導致整個安裝失敗。
扁平模式 將依賴包的不同版本歸結為單個版本,以避免建立多個副本。
常用指令:
// 全域性安裝
npm install -g yarn
// 初始化乙個專案
yarn init
// 新增依賴包
yarn add [package]
// 公升級依賴包
yarn upgrade [package]
// 移除依賴包
yarn remove [package]
// 安裝全部依賴
yarn install (或者 yarn)
使用文件:
pnpm 的專案初衷是節約磁碟空間並提公升安裝速度
所有檔案都會儲存在硬碟上的某一位置。 當軟體包被被安裝時,包裡的檔案會硬鏈結到這一位置,而不會占用額外的磁碟空間。這允許你跨專案地共享同一版本的依賴,因此,您在磁碟上節省了大量空間,這與專案和依賴項的數量成正比,並且安裝速度要快得多。
pnpm 支援npm yarn corepack等多種安裝使用方式,比如
npm install -g pnpm
pnpm add -g pnpm // 用來公升級版本
| npm 命令 | pnpm 等效 |
| npm install | pnpm install |
| npm i | pnpm add |
| npm run | pnpm |
使用文件:
corepack是乙個實驗***,在 node.js v16.13 版本中引入,它可以指定專案使用的包管理器以及版本, 簡單來說,corepack 會成為 node.js 官方的內建 cli,用來管理『包管理工具(npm、yarn、pnpm、cnpm)』,使用者無需手動安裝,即『包管理器的管理器』。
主要作用:
由於corepack 是乙個實驗***,所以預設是沒有啟動的,需要顯式啟用,需要執行指令 corepack enable 進行啟動;在專案package.json 檔案中新增屬性 "packagemanager",比如
"packagemanager": "[email protected]"
代表當前專案只允許使用yarn 包管理器並指定1.22.15版本
// 當前應用啟用
corepack enable
// 定義包管理器
packagemanager": "[email protected]"
yarn install
// 用非宣告的包管理器,會自動攔截報錯
pnpm install
usage error: this project is configured to use yarn
因為在試驗階段,目前還有些問題待解決:
the full npm package wouldn't be included out of the box anymore (this might be an incremental move, with first a major version shipping pmm + npm, and the next one discarding npm)雖然npm 是現在node的預設包管理器,但是由於它多年來的不思進取,及種種缺陷,corepack 的出現可以說是大快人心,其最大的意義是讓 npm 不再成為唯一的官方指定工具,這將使各種包管理器在乙個更公平的地位上進行競爭,相信對開發者來說也是一件很好的事情。npm 將慢慢從 node.js 內建包中移除,預計在下乙個大版本啟動
liunx RPM包管理和原始碼包管理
rpm 原red hat package manager,現在是乙個遞迴縮寫 由 red hat 公司提出,被眾多 linux 發行版所採用,最大的特點就是其無需編譯,可以直接使用,但是其無法進行個人設定,開關功能。下面是rpm包示例 zip 3.0 11.el7.x86 64.rpm zip軟體包...
Bower前端包管理器
bower需要git 支援 npm install g bower 全域性安裝該模組 bower help 可以檢視命令 bower list 檢視列表 bower uninstall jquery 刪除該庫 bower install jquery 1.7.2 安裝不同版本 bower updat...
conda 環境和包 管理
建立新環境 conda create n venv name python 3.6 刪除環境 conda env remove n venv name 進入 退出環境 不知道為什麼我的,用source不行,用conda可以。即 不成功 source activate venv name source...