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

1. 包管理工具

1.1 npm

sh 复制代码
# 安装
$ 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

sh 复制代码
# 安装
npm install -g yarn

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

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

1.3 pnpm

sh 复制代码
# 安装
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

sh 复制代码
# 安装
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. 包管理器对比

sh 复制代码
# 锁文件对比
npm   -> package-lock.json
yarn  -> yarn.lock
pnpm  -> pnpm-lock.yaml
cnpm  -> 无锁文件

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

4. 浏览器包管理工具

html 复制代码
<!-- 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. 模块打包工具

sh 复制代码
# 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. 遵循最佳实践
相关推荐
群联云防护小杜6 分钟前
深度隐匿源IP:高防+群联AI云防护防绕过实战
运维·服务器·前端·网络·人工智能·网络协议·tcp/ip
汉得数字平台24 分钟前
【鲲苍提效】全面洞察用户体验,助力打造高性能前端应用
前端·前端监控
花海如潮淹31 分钟前
前端性能追踪工具:用户体验的毫秒战争
前端·笔记·ux
_丿丨丨_5 小时前
XSS(跨站脚本攻击)
前端·网络·xss
天天进步20155 小时前
前端安全指南:防御XSS与CSRF攻击
前端·安全·xss
拾光拾趣录8 小时前
括号生成算法
前端·算法
拾光拾趣录9 小时前
requestIdleCallback:让你的网页如丝般顺滑
前端·性能优化
前端 贾公子9 小时前
vue-cli 模式下安装 uni-ui
前端·javascript·windows
拾光拾趣录9 小时前
链表合并:双指针与递归
前端·javascript·算法
@大迁世界9 小时前
前端:优秀架构的坟墓
前端·架构