打开 CMD(命令提示符) 或 PowerShell(建议以 管理员身份运行),执行以下命令:
npm install -g yarn
-g
表示全局安装,使 yarn
命令可以在任何目录下使用。安装完成后,检查 Yarn 是否安装成功:
yarn --version
如果显示版本号(如 4.1.0
),说明安装成功。
报错示例:
npm ERR! Error: EPERM: operation not permitted
解决方法:
npm cache clean --force
npm install -g yarn --force
报错示例:
npm ERR! network timeout
npm ERR! Unable to download package
解决方法:
npm config set registry https://registry.npmmirror.com
然后重新安装 Yarn:npm install -g yarn
npm config set proxy false
问题:安装成功,但运行 yarn
时提示 'yarn' 不是内部或外部命令
。
解决方法:
%APPDATA%\npm
或 C:\Users\你的用户名\AppData\Roaming\npm
)。PATH
中:
sysdm.cpl
→ 高级 → 环境变量 → 在 PATH
中添加 Yarn 的路径。yarn --version
测试。如果你已安装 Chocolatey,可以运行:
choco install yarn
如果已安装 Scoop,可以运行:
scoop install yarn
从 Yarn 官网 下载 Windows 版的 .msi
安装包,双击安装。
如果需要卸载 Yarn,可以执行:
npm uninstall -g yarn
或者通过 Chocolatey/Scoop 卸载:
choco uninstall yarn # Chocolatey
scoop uninstall yarn # Scoop
以下是 npm、Yarn 及 pnpm 三大主流 JavaScript 包管理工具的详细对比,涵盖核心特性、命令差异及使用场景:
特性 | npm (Node Package Manager) | Yarn (Yarn Berry) | pnpm (Performance npm) |
---|---|---|---|
开发者 | Node.js 官方 | Meta (Facebook) + 社区 | Vercel 团队 |
安装速度 | 中等 | 快(依赖缓存机制) | 极快(硬链接 + 符号链接) |
磁盘空间占用 | 高(重复依赖) | 中(依赖提升) | 极低(共享依赖) |
依赖管理机制 | 嵌套依赖树 | 扁平化依赖树 | 内容寻址存储 |
安全机制 | npm audit (基础) |
零安装(离线优先) | 严格隔离依赖(防幽灵依赖) |
Monorepo 支持 | 需配合 Lerna | 原生支持(Workspaces) | 原生支持(Workspaces) |
锁定文件 | package-lock.json |
yarn.lock |
pnpm-lock.yaml |
默认镜像源 | registry.npmjs.org |
registry.yarnpkg.com |
registry.npmjs.org |
操作 | npm 命令 | Yarn 命令 | pnpm 命令 |
---|---|---|---|
初始化项目 | npm init |
yarn init |
pnpm init |
安装所有依赖 | npm install |
yarn install |
pnpm install |
添加生产依赖 | npm install |
yarn add |
pnpm add |
添加开发依赖 | npm install -D |
yarn add -D |
pnpm add -D |
全局安装 | npm install -g |
yarn global add |
pnpm add -g |
移除依赖 | npm uninstall |
yarn remove |
pnpm remove |
更新依赖 | npm update |
yarn upgrade |
pnpm update |
运行脚本 | npm run |
yarn run |
pnpm run |
安全审计 | npm audit |
yarn npm audit |
pnpm audit |
切换镜像源 | npm config set registry |
yarn config set registry |
pnpm config set registry |
node_modules
嵌套),v3+ 改为扁平化结构,可能导致依赖重复和幽灵依赖(未声明但可访问)。node_modules
,直接映射依赖到缓存目录,节省空间但需适配工具链。workspaces
,可跨包共享依赖:// package.json
{
"workspaces": ["packages/*"]
}
lerna
或 npm-workspaces
(v7+ 支持)。yarn.lock
严格锁定版本,零安装模式(Zero-Installs)将依赖提交到仓库,完全离线运行。package-lock.json
锁定版本,但依赖提升可能引发冲突。场景 | 推荐工具 | 原因 |
---|---|---|
新项目 | pnpm / Yarn Berry | 安装快、节省磁盘,依赖管理严格 |
企业级 Monorepo | Yarn Berry / pnpm | 原生 Workspaces 支持完善,依赖隔离好 |
兼容性要求高 | npm | 官方工具,生态兼容性最佳 |
磁盘空间敏感 | pnpm | 硬链接机制节省空间 |
离线开发 | Yarn Berry (Zero-Installs) | 依赖提交到 Git,无需网络安装 |
迁移成本低 | npm → Yarn Classic | yarn.lock 兼容 package-lock.json |
node_modules
和 package-lock.json
npm install -g yarn
yarn install # 自动生成 yarn.lock
npm install -g pnpm
pnpm import # 从 package-lock.json 生成 pnpm-lock.yaml
pnpm install
# 设置淘宝源
npm config set registry https://registry.npmmirror.com
yarn config set registry https://registry.npmmirror.com
pnpm config set registry https://registry.npmmirror.com
趋势:2025 年新项目中,pnpm 和 Yarn Berry 占比超过 70%,尤其在大型项目中优势明显。建议根据团队需求和技术栈选择合适的工具。