天天看点

Jenkins构建前端项目多个nodejs版本切换

作者:BlueCore

公司开多个项目的开发环境,使用了不同的开源软件。不同项目的前端系统依赖的nodejs软件版本不尽相同。通过Jenkins打包构建前端系统时,需要根据不同项目所依赖的nodejs版本不同,进行切换。

nodejs官方推荐了节点版本管理器nvm——nodejs version manager nodejs版本管理器,在需要时,可以切换到特定的nodejs版本。

它支持安装、卸载、切换nodejs版本。

类似的版本管理还有nvs

nvm地址:

Jenkins服务器上安装nvm

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh --proxy http://10.100.210.225:10809 | bash
# 由于GitHub在国内无法正常访问,需要通过特殊手段访问。
# curl --proxy 指定通过http代理服务器下载安装脚本           
# 以上命令执行完成后,会提示要么关闭当前终端重新登录,要么通过执行下面的命令以便使用nvm命令。
# 1.配置nvm基础目录环境变量
# 2.判断nvm.sh脚本文件是否存在且大小非0,为真时,返回真,继续执行该脚本,加载nvm
# 3.判断bash_completion文件是否存在且大小非0,为真时,返回真,继续执行该脚本。
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion           

通过nvm在Jenkins服务器上安装各个不同版本的nodejs

nvm 命令:

  • nvm install 14 安装nodejs14版本 可以通过--lts 参数,指定安装14 的 长期支持版
  • nvm use xx 切换到指定版本的nodejs
# 配置淘宝镜像源
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/
# 安装指定版本nodejs
[root@61 ~]# nvm install 14 --lts
Downloading and installing node v14.21.3...
Local cache found: ${NVM_DIR}/.cache/bin/node-v14.21.3-linux-x64/node-v14.21.3-linux-x64.tar.xz
Checksums match! Using existing downloaded archive ${NVM_DIR}/.cache/bin/node-v14.21.3-linux-x64/node-v14.21.3-linux-x64.tar.xz
Now using node v14.21.3 (npm v6.14.18)

# nvm命令查看已安装nodejs版本
[root@61 ~]# nvm ls
->     v14.21.3
       v16.20.1
default -> lts/* (-> N/A)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v16.20.1) (default)
stable -> 16.20 (-> v16.20.1) (default)
lts/* -> lts/hydrogen (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3
lts/gallium -> v16.20.1
lts/hydrogen -> v18.16.1 (-> N/A)           

Jenkins 前端项目中通过nvm切换版本并构建

Jenkins构建前端项目多个nodejs版本切换

小贴士

  • 通过nvm命令安装nodejs时,可通过设置环境变量,使用国内镜像源,提高下载安装速度。

export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/

  • 使用npm打包构建时会通过网络下载依赖包,可通过设置国内镜像源,提高下载速度

npm config set registry https://registry.npm.taobao.org

  • curl 命令下载安装脚本时,如果无法下载,可通过--proxy 参数配置curl命令使用代理服务器。
  • RHEL7 & Ubuntu18.04 系统不支持nodejs18 及以上版本。如需使用nodejs18及 18+ ,需升级OS系统到RHEL8 或Ubuntu20.