包管理工具npm、yarn、pnpm、cnpm详解

1. 包管理工具

1.1 npm

# 安装
$ node 自带 npm

# 基本用法
npm install package      # 安装包
npm install             # 安装所有依赖
npm install -g package  # 全局安装
npm uninstall package   # 卸载包
npm update package      # 更新包
npm run script          # 运行脚本

# 特点
- Node.js 默认包管理器
- 依赖平铺结构
- 包安装慢
- 磁盘空间占用大

1.2 yarn

# 安装
npm install -g yarn

# 基本用法
yarn add package        # 安装包
yarn                    # 安装所有依赖
yarn global add package # 全局安装
yarn remove package     # 卸载包
yarn upgrade package    # 更新包
yarn run script        # 运行脚本

# 特点
- 并行安装,速度快
- 自动锁定版本
- 更好的缓存机制
- 更简洁的输出

1.3 pnpm

# 安装
npm install -g pnpm

# 基本用法
pnpm add package        # 安装包
pnpm install           # 安装所有依赖
pnpm add -g package    # 全局安装
pnpm remove package    # 卸载包
pnpm update package    # 更新包
pnpm run script        # 运行脚本

# 特点
- 硬链接共享依赖
- 节省磁盘空间
- 安装速度快
- 更严格的依赖管理

1.4 cnpm

# 安装
npm install -g cnpm --registry=https://registry.npmmirror.com

# 基本用法
cnpm install package    # 安装包
cnpm install           # 安装所有依赖
cnpm install -g package # 全局安装
cnpm uninstall package # 卸载包
cnpm update package    # 更新包
cnpm run script        # 运行脚本

# 特点
- 淘宝 NPM 镜像
- 国内访问快
- 同步官方版本

2. 包管理器的特点

NPM:

  • Node.js 默认包管理器
  • 最大的包生态系统
  • 依赖处理较慢
  • 占用空间大

Yarn:

  • Facebook 开发
  • 并行安装
  • 离线模式
  • 确定性安装

PNPM:

  • 节省磁盘空间
  • 快速安装
  • 严格的依赖管理
  • 支持 monorepo

CNPM:

  • 淘宝镜像源
  • 国内快速访问
  • 实时同步官方源

3. 包管理器对比

# 锁文件对比
npm   -> package-lock.json
yarn  -> yarn.lock
pnpm  -> pnpm-lock.yaml
cnpm  -> 无锁文件

# 性能对比
安装速度: pnpm > yarn > cnpm > npm
磁盘空间: pnpm > yarn > npm > cnpm
可靠性: yarnpnpm > npm > cnpm

4. 浏览器包管理工具

<!-- Bower (已过时但仍被使用) -->
bower install jquery

<!-- jsDelivr CDN -->
<script src="https://cdn.jsdelivr.net/npm/jquery"></script>

<!-- unpkg -->
<script src="https://unpkg.com/react@17/umd/react.production.min.js"></script>

5. 模块打包工具

# Webpack
npm install webpack webpack-cli --save-dev

# Rollup
npm install rollup --save-dev

# Vite
npm create vite@latest

# Parcel
npm install parcel --save-dev

6. 选择建议

新项目:

  • 个人项目推荐 pnpm
  • 团队项目遵循团队标准

大型项目:

  • monorepo 推荐 pnpm
  • 多包项目推荐 yarn workspaces

小型项目:

  • npm 足够使用
  • yarn 也是好选择

特殊情况:

  • 国内项目可考虑 cnpm
  • 老项目维持原有工具

7. 使用建议

7.1 项目初始化

  1. 使用 create-react-app, vue-cli 等脚手架
  2. 选择合适的包管理器
  3. 设置合适的 .gitignore

7.2 依赖管理

  1. 明确区分 dependencies 和 devDependencies
  2. 使用锁文件确保版本一致
  3. 定期更新依赖版本

7.3 性能优化

  1. 使用缓存机制
  2. 选择合适的镜像源
  3. 优化安装策略

7.4 安全考虑

  • 定期进行安全更新
  • 审查依赖包的安全性
  • 使用 npm audit 等工具

注意:

  1. 团队统一很重要
  2. 保持依赖更新
  3. 注意安全问题
  4. 遵循最佳实践
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒羊羊我小弟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值