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

作者站长头像
站长
· 阅读数 8

场景:本地环境需要用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 版本。

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

回复
1个回答
avatar
test
2024-07-03

新建一个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

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容