不定期更新,建议关注收藏点赞。
链接:
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了