corepack ########## * Corepack 是 Node.js 官方内置的包管理工具代理,用于简化和管理 pnpm、yarn 等包管理工具的安装和版本控制。 * 它从 Node.js 16.13+ 开始内置,默认处于禁用状态,需要手动启用。 * corepack 是 Node.js 内置的包管理器版本管理工具,它简化了 yarn 和 pnpm 的版本控制,使得 Node.js 项目更易于维护和协作。如果你的项目涉及 yarn 或 pnpm,建议启用 corepack 以提升开发体验。 * 避免全局安装问题: 传统上,使用 yarn 或 pnpm 需要全局安装一个特定版本,而 corepack 让你无需手动管理这些版本,减少潜在的兼容性问题。 * 核心功能 * ✅ 自动管理 pnpm、yarn 版本,无需手动全局安装 * ✅ 确保不同项目使用不同的包管理器版本,避免团队协作时的版本不一致问题 * ✅ 允许在 package.json 中声明包管理器版本,提升可维护性 * ✅ 避免全局安装 pnpm 和 yarn,提升安全性和稳定性 主要功能 =========== * 管理多个包管理器: corepack 支持 yarn、pnpm 和 npm,可以在不同项目中灵活使用不同版本的包管理器 基本使用:: # Node.js 默认禁用 Corepack,需要手动启用: corepack enable # 安装特定包管理器版本 corepack prepare yarn@3.2.1 --activate # 更新 corepack # corepack 依赖于 Node.js 版本,但也可以通过手动更新: corepack update 检查是否可用:: corepack --version 指定包管理器版本 ================ * 自动管理包管理器版本: 通过 package.json 文件的 packageManager 字段,你可以指定要使用的包管理器及其版本:: # 在该项目中运行 yarn 时,corepack 会自动使用 yarn@3.2.1,即使系统上没有全局安装该版本的 yarn { "packageManager": "yarn@3.2.1" } # 直接执行 corepack use 在当前终端临时使用特定版本:: corepack use yarn@1.22.19 适用场景 =========== * 在团队协作时确保所有成员使用相同的包管理器版本,避免 “It works on my machine” 问题。 * 在 CI/CD 管道中确保一致的包管理器版本,而不依赖全局安装。 * 避免在不同项目之间切换时手动管理多个 yarn 或 pnpm 版本。