介绍
在使用nvm进行node版本切换时,开发人员都需要手动处理。
关键的问题是,项目发布编译时,需要多个nodejs版本的机器进行编译。(运维可以通过命令切换版本编译,但是别人不愿意咋办?)所以使用 corepack + volta,从而实现无感编译。
本篇文章不会讲解具体如何配置,讲解的是,在配置过程中碰到的坑问题。
corepack 本地使用
本人的开发机器默认的node是18.16.0,所以安装后,corepack是0.17.0版本。配置完成后,提示错误如下:
网上查询了一圈,都是说关闭corepack,手动安装yarn、pnpm。这个就违背使用corepack的初衷了。本人看到corepack在github上有说起该问题。但是最新的corepack需要nodejs版本为 > 18.17。所以进行如下操作:
- 本地nodejs升级到18.18.0
- 然后把corepack 安装成 > 0.25的版本
- 把npm也开启下
corepack enable
corepack enable npm #npm需要单独开启,不建议开启
- 修改corepack拉包地址:setx COREPACK_NPM_REGISTRY "registry.npmmirror.com"
在尝试pnpm -v 这能够正常拉取。
volta 本地使用
- 安装volta
- 然后,在vscode中看到如下错误:
发现,volta 也不能正常拉取node。两个管理工具都无法正常拉取,也是醉了。
- 处理方式是在volta的安装目录添加hooks.json文件,如下:
文件的内容配置taobao镜像的cdn路径:
{
"node": {
"index": {
"template": "https://cdn.npmmirror.com/binaries/node/index.json"
},
"distro": {
"template": "https://cdn.npmmirror.com/binaries/node/v{{version}}/node-v{{version}}-{{os}}-x64.zip"
}
}
}
附带苹果电脑的hook.json配置
{
"node": {
"index": {
"template": "https://cdn.npmmirror.com/binaries/node/index.json"
},
"distro": {
"template": "https://registry.npmmirror.com/-/binary/node/v{{version}}/node-v{{version}}.tar.gz"
}
}
}
结语
到此,在win10的操作系统上,能够正常使用corepack + volta,爽~