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

反转基因福娃  金牌会员 | 2024-3-22 11:48:21 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 685|帖子 685|积分 2055

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

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


 3、运行项目

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

反转基因福娃

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表