不定期更新,建議關注收藏點贊。
鏈接:
npm專題
目錄
- 主流包管理器簡介
- 對比
主流包管理器簡介
主流的包管理器其實有不少,不同語言和平臺都有各自的一套系統。
- 前端(JavaScript/TypeScript)
名稱 | 簡介 | 開發者 | 特點 |
---|---|---|---|
npm | Node.js 默認包管理器 | Node.js 官方 | 最主流、生態最大 |
Yarn | Facebook 出品 | 更快、更穩定、支持離線緩存 | |
pnpm | 新一代高性能管理器 | 社區 | 快、占空間小、支持模塊去重 |
bun | 超快的 JS 運行時 & 包管理器 | 社區 | 集成打包器、測試工具、極快 |
bun 最近特別火,因為它除了包管理,還集成了運行時和構建工具。
- Python
pip Python 官方的包管理器(最常用)
conda 用于科學計算、虛擬環境管理(Anaconda 生態) - Java / Kotlin
Maven Java 最常用的包管理和構建工具
Gradle 更快、腳本化程度高(Android 常用) - Rust
cargo Rust 官方包管理器(也是構建工具) - Go
go modules Go 官方的模塊系統和包管理方案(從 Go 1.11 開始)
對比
- npm v.s. yarn
Yarn 和 npm 都是 Node.js 的包管理器,用于安裝、管理和更新前端項目中的依賴。它們作用差不多,但各自有一些不同點。
特性 | npm | Yarn |
---|---|---|
開發者 | 官方出品(Node.js) | Facebook 出品 |
鎖文件 | package-lock.json | yarn.lock |
安裝速度 | 較慢(以前) 現在已改進(npm v7+) | 更快(并行安裝) |
離線安裝 | 默認不支持 | 支持緩存離線安裝 |
工作區支持(Monorepo) | npm v7+ 支持 | 支持(更成熟) |
默認包管理協議 | HTTPS | HTTPS |
命令的區別如下:
操作 | npm | Yarn |
---|---|---|
安裝依賴 | npm install | yarn install |
添加包 | npm install package-name | yarn add package-name |
刪除包 | npm uninstall package-name | yarn remove package-name |
全局安裝 | npm install -g | yarn global add |
運行腳本 | npm run script | yarn script |
注意:現在很多項目都可以兼容兩者,但不要混用!
npm install -g yarn
#之后就可以在項目里用 yarn 替代 npm了