Yarn 是由 Facebook(Meta)开发的 JavaScript 包管理工具,用于替代 npm
,解决它在早期版本中存在的一些问题。
yarn.lock
锁定依赖版本;npm install -g yarn
安装完成后验证版本:
yarn -v
操作 | npm 命令 | yarn 命令 |
---|---|---|
初始化项目 | npm init / npm init -y |
yarn init / yarn init -y |
安装所有依赖 | npm install |
yarn install |
安装依赖 | npm install axios |
yarn add axios |
安装开发依赖 | npm install eslint --save-dev |
yarn add eslint --dev |
卸载依赖 | npm uninstall axios |
yarn remove axios |
更新依赖 | npm update |
yarn upgrade |
添加指定版本 | npm install [email protected] |
yarn add [email protected] |
执行脚本 | npm run build |
yarn build |
清缓存 | npm cache clean --force |
yarn cache clean |
my-app/
├── node_modules/
├── package.json
├── yarn.lock ← 用于锁定依赖版本(等价于 npm 的 package-lock.json)
对比点 | npm | yarn |
---|---|---|
默认安装 | ✅ Node.js 自带 | ❌ 需手动安装 |
安装速度 | ⏳ 稍慢(单线程) | ⚡ 更快(并行) |
锁版本文件 | package-lock.json |
yarn.lock |
命令简洁性 | 需要 npm run xxx |
可以直接 yarn xxx |
社区支持 | 最广泛 | 稍弱(但稳定) |
易用性 | 更熟悉 | 语法更清爽 |
node_modules 构建 |
全部复制 | 更优化但可读性低 |
推荐场景 | 所有人 | 追求速度/现代化团队 |
npm
和 yarn
避免在同一个项目中混用两个包管理器,否则会出现依赖混乱:
package-lock.json
(使用 npm)yarn.lock
(使用 yarn)建议团队协商统一使用一种。
npm
yarn