扫一扫分享
Corepack 是一款零运行时依赖的 Node 脚本工具,它充当 Node 项目和包管理工具之间的桥梁。实际上,Corepack 可以让你直接使用 yarn 和 pnpm,而无需安装它们。就像使用 npm 一样,默认由 Node 提供。
也就是说Corepack 会成为 Node.js 官方的内置 CLI,用来管理『包管理工具(npm、yarn、pnpm、cnpm)』,用户无需手动安装,即『包管理器的管理器』。
先安装 Node.16.9.0 版本,然后在 package.json 中声明对应的包管理工具:
// package.json
{
"name": "corepack-test",
"packageManager": "yarn@2.0.0"
}
命令:
# 单应用激活
$ corepack enable
# 用声明的包管理器,会自动下载对应的 yarn,然后再执行
$ yarn install
# 用非声明的包管理器,会自动拦截报错
$ pnpm install
Usage Error: This project is configured to use yarn
没全局安装 yarn 也能找到命令,怎么搞的?分析了下:
$ which corepack
/Users/tz/.nvs/node/16.9.0/x64/bin/corepack
$ ll /Users/tz/.nvs/node/16.9.0/x64/bin/
corepack -> ../lib/node_modules/corepack/dist/corepack.js
npm -> ../lib/node_modules/npm/bin/npm-cli.js
npx -> ../lib/node_modules/npm/bin/npx-cli.js
pnpm -> ../lib/node_modules/corepack/dist/pnpm.js
pnpx -> ../lib/node_modules/corepack/dist/pnpx.js
yarn -> ../lib/node_modules/corepack/dist/yarn.js
yarnpkg -> ../lib/node_modules/corepack/dist/yarnpkg.js
其他用法:
# 全局指令如 npm init 这种,需要设置
$ corepack prepare yarn@x.y.z --activate
# 也支持代理方式,类似 npx 执行远程包
$ corepack yarn@2.1.0 install
对于大部分开发者来说,基本上无感,原来怎么用还怎么用,只是无需特意全局安装对应的包管理器了。
手机预览