我为什么使用 Corepack?
u3u
你知道如何在不同的项目中使用不同的 pnpm 版本吗?
什么是 Corepack?
Corepack 是 Node.js (v16.9.0+
) 自带的用来管理 包管理器 (如:yarn / pnpm) 版本的管理器。
使用它你可以在不同的项目甚至不同的目录中使用不同的包管理器,或不同的版本。
所以你也不再需要单独去安装不同的包管理器,通过 Corepack 可以更加方便的统一管理它们。
Corepack 的用法
Corepack 的用法非常简单,只需要使用 corepack enable
命令启用它即可。
但是要注意,你需要先卸载系统中以前安装过的其他包管理器,因为它们的命令存在于系统 bin
目录中,
通常优先级高于 Corepack 命令,如果不将其移除则 Corepack 可能无法生效。
我们可以通过 which -a
命令查找所有同名命令的路径,然后将其重命名或直接删除。
只要确保 which -a
返回的第一条路径 (首选) 是 Corepack 的则没有问题。
然后验证它们的版本没有问题即可愉快的使用了!
使用指定的版本
最标准的方法就是在项目的 package.json
文件中配置 packageManager
字段,例如:
这将强制当前项目使用 pnpm
的 8.14.1
版本 (如果没有安装这个版本也会自动安装)
你可以随时修改 packageManager
来做到更新或降级版本
并且当你错误的使用了其他包管理器会直接报错阻止它。
如果你没有配置 packageManager
字段,则会使用全局的默认版本,
你可以在项目外使用 corepack prepare --activate
命令切换到指定版本,例如:
你还可以临时使用一个指定的版本,它不会更改全局默认的版本,只会在当次执行生效: