win10系统本地开发配置 corepack + volta

586 阅读1分钟

介绍

在使用nvm进行node版本切换时,开发人员都需要手动处理。

关键的问题是,项目发布编译时,需要多个nodejs版本的机器进行编译。(运维可以通过命令切换版本编译,但是别人不愿意咋办?)所以使用 corepack + volta,从而实现无感编译。

本篇文章不会讲解具体如何配置,讲解的是,在配置过程中碰到的坑问题。

corepack 本地使用

本人的开发机器默认的node是18.16.0,所以安装后,corepack是0.17.0版本。配置完成后,提示错误如下: image.png

网上查询了一圈,都是说关闭corepack,手动安装yarn、pnpm。这个就违背使用corepack的初衷了。本人看到corepack在github上有说起该问题。但是最新的corepack需要nodejs版本为 > 18.17。所以进行如下操作:

  1. 本地nodejs升级到18.18.0
  2. 然后把corepack 安装成 > 0.25的版本
  3. 把npm也开启下
corepack enable
corepack enable npm #npm需要单独开启,不建议开启
  1. 修改corepack拉包地址:setx COREPACK_NPM_REGISTRY "registry.npmmirror.com"

在尝试pnpm -v 这能够正常拉取。

volta 本地使用

  1. 安装volta
  2. 然后,在vscode中看到如下错误: image.png 发现,volta 也不能正常拉取node。两个管理工具都无法正常拉取,也是醉了。
  3. 处理方式是在volta的安装目录添加hooks.json文件,如下: image.png

文件的内容配置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,爽~