反转基因福娃 发表于 2024-3-22 11:48:21

开发过程中管理多个项目不同的Node版本,使用.sh脚本实现

本地会开发多个不同的 NodeJS 项目,每个项目可能需要的 Node 版本不同,有的老项目还在用 10.xx ,有的要求 12.xx/14.xx/16.xx/18.xx 。
总之,每个项目都需要不同的 Node 版本。很多时候我都是在启动项目遇到报错了才会意识到要切换 Node 版本。
1、创建文件夹

在项目根目录下创建node.sh文件,把下面代码粘贴到你的node.sh文件中
https://img2024.cnblogs.com/blog/3365000/202401/3365000-20240105140900173-149848042.png
1 NODE_VERSION="15"# 你需要的 Node.js 版本
2
3 # 检查是否已经安装指定版本的 Node.js
4 if [ -x "$(command -v node)" ]; then
5   INSTALLED_VERSION=$(node -v)
6   if [ "$INSTALLED_VERSION" == "v$NODE_VERSION" ]; then
7   echo "Node.js version is already v$NODE_VERSION. No action needed."
8   else
9   # 判断 nvm 是否已安装
10   if command -v nvm &> /dev/null; then
11       echo "Using nvm to manage Node.js versions."
12       # 检查 nvm ls 的输出是否包含特定 Node.js 版本
13       if nvm ls | grep -q "$NODE_VERSION"; then
14         echo "The current Node.js version is not v$NODE_VERSION"
15         nvm use "$NODE_VERSION"
16       else
17         echo "Node.js version v$NODE_VERSION is not installed."
18         # 安装并切换到指定的 Node.js 版本
19         nvm install "$NODE_VERSION" && nvm use "$NODE_VERSION"
20       fi
21   else
22       echo "Using n to manage Node.js versions."
23       # 检查 n 的输出是否包含特定 Node.js 版本
24       if n | grep -q "$NODE_VERSION"; then
25         echo "The current Node.js version is not v$NODE_VERSION"
26         sudo n "$NODE_VERSION"
27       else
28         echo "Node.js version $NODE_VERSION is not installed."
29         # 安装并切换到指定的 Node.js 版本
30         sudo n "$NODE_VERSION"
31       fi
32   fi
33   fi
34 else
35   echo "Node.js is not installed. Installing v$NODE_VERSION..."
36 fi2、在项目启动配置文件package.js中添加bash node.sh

https://img2024.cnblogs.com/blog/3365000/202401/3365000-20240105140955158-283228713.png
 3、运行项目

根据自己的项目命令运行项目

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 开发过程中管理多个项目不同的Node版本,使用.sh脚本实现