使用nvm在preinstall时切换node版本的问题?

场景:本地环境需要用14.x,但是yarn install 时需要 10.x

使用nvm在preinstall时node版本

package.json

"scripts": {
    "preinstall": "bash ./scripts/preinstall.sh"
}

preinstall.sh

nvm use 10.x

执行 yarn install

提示node版本为14.x,编译必须(10.x)

原因:在 preinstall 脚本中使用 nvm 切换了 Node.js 版本,并且在 install 脚本中希望使用已切换的版本,可能会出现切换不生效的情况。这是因为 preinstall 和 install 两个脚本通常在不同的子进程中执行,每个子进程都有自己的环境变量和 Node.js 版本。

问题:怎么解决这个场景的问题?

阅读 2.4k
1 个回答

新建一个install-with-node-10.sh的脚本文件:

#!/bin/bash

# 切换到 Node.js 10.x
source ~/.nvm/nvm.sh
nvm use 10.x

# 运行 yarn install
yarn install

设置脚本文件的权限:

chmod +x install-with-node-10.sh

每次安装的时候:

./install-with-node-10.sh

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题