Node.js Corepack 使⽤指南
Corepack 是 Node.js 推出的包管理器的管理器。类似于 nvm 可以一行命令安装、切换 Node.js 的版本,Corepack 可以一行命令安装、切换 npm / yarn / pnpm 的版本。Corepack 还有一个特性,就是能够读取项目的 packge.json 中的 pacakgeManager 字段,从而自动切换到对应版本的包管理器,防止⾃动切换包管理器导致依赖⽬版本不⼀致问题
背景
Node.js Corepack 项⽬管理 yarn / npm / pnpm 问题了,推荐⼤家⽤起来,⾮常适合团队杂七杂⼋的 项⽬各种版本对不⻬问题,导致安装依赖、lock ⽂件参差不⻬问题。⽽且⿎励⼤家项⽬ package.json 要设置 "packageManager": "xxx@x.x.x",避免后续项⽬新⼈维护版本依赖安装问题
使⽤
安装
- 检查 Node.js 版本,Corepack 默认与 Node.js 14.19.0 和 16.9.0 一起分发,所以保证 Node.js 版本大于等于 16.9.0,无需自行安装 Corepack,终端输入
corepack
成功结果如下:
项目使⽤
⽐如 pnpm 版本:
全局的 pnpm 版本:
针对某个项⽬ package.json 使⽤对应的包管理器版本:
没有设置的话会默认⾛全局设置的版本:
其他问题
还遇到个问题就是: 如果有使⽤ nvm 或 n 管理 node 版本的或两者混⽤的(⽐如我),可能会有 pnpm 依赖版本问题,⽐ 如删除pnpm,执⾏命名: npm uninstall -g pnpm,但 pnm 还是会存在,因为 node 管理版本导致 pnpm 查询全局安装路径不⼀致问题,也就是你删除的是 n 管理下 node 的 pnpm 但是 nvm 下⼜是另 ⼀个的 pnpm 版本路径,你可以删除⼿动删除 pnpm 全局依赖:
执⾏命令:which pnpm:
记得这个也要删除(pnpm pnpx),不然会导致 pnpm ⼀直安装不上: