Jenkins在构建前端代码的时候如何切换node版本

背景

项目使用了cesium较新的功能,安装了0.118.0的版本。他需要的node版本为18.18.0以上。而项目因为比较早,如果node版本升级到18.18.0以上,则会报错。所以需要安装依赖时切换node版本为18.20.4。而开发和打包时候node本部是16.20.2 。。。

开发

前提:安装了nvm。

安装依赖时:

sh 复制代码
nvm use 18.20.4
yarn start

开发环境:

sh 复制代码
nvm use 16.20.2
yarn start

部署打包

因项目使用Jenkins打包,其打包对应的流水线脚本为:

sh 复制代码
stage('Build Frontend') {
    steps {
        sh '''
            # 安装nvm并设置环境变量 这里需要代理才能下载
            HTTPS_PROXY=xxx curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
            export NVM_DIR="$HOME/.nvm"
            [ -s "$NVM_DIR/nvm.sh" ] && \\. "$NVM_DIR/nvm.sh"

            # 安装Node.js 18.20.4并安装yarn
            nvm install 18.20.4
            npm install -g yarn

            # 安装依赖
            yarn install

            # 切换Node.js版本到16.20.2
            nvm install 16.20.2
            nvm use 16.20.2
            npm install -g yarn

            echo "当前Node.js版本:"
            node -v

            yarn run build:prod

        '''
    }
}

这段脚本是一个用于Jenkins Pipeline的Stage,其目的是构建前端项目。以下是脚本的详细解释:

  1. sh ''':这是一个shell脚本的多行字符串开始标记,表示接下来的内容将作为shell命令执行。

  2. 安装nvm(Node Version Manager)并设置环境变量:

    • HTTPS_PROXY=xxx:设置HTTPS代理,xxx应替换为实际的代理地址。这是因为在某些网络环境下,需要通过代理才能访问GitHub。
    • curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash:使用curl下载nvm的安装脚本,并通过管道符传递给bash执行。
    • export NVM_DIR="$HOME/.nvm":设置nvm的目录环境变量。
    • [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh":如果nvm.sh文件存在,则执行该文件以初始化nvm环境。
  3. 安装Node.js 18.20.4并安装yarn:

    • nvm install 18.20.4:使用nvm安装Node.js 18.20.4版本。
    • npm install -g yarn:使用npm全局安装yarn包管理器。
  4. 安装依赖:

    • yarn install:运行yarn命令安装项目依赖。
  5. 切换Node.js版本到16.20.2:

    • nvm install 16.20.2:使用nvm安装Node.js 16.20.2版本。
    • nvm use 16.20.2:切换到Node.js 16.20.2版本。
    • npm install -g yarn:再次全局安装yarn,以确保在新的Node.js版本下yarn可用。
  6. 输出当前Node.js版本:

    • echo "当前Node.js版本:":打印提示信息。
    • node -v:输出当前使用的Node.js版本。
  7. 构建生产环境:

    • yarn run build:prod:运行yarn命令,执行项目的生产环境构建脚本。

整个脚本的目的是在一个Jenkins Pipeline中自动化前端项目的构建过程,包括安装nvm、切换Node.js版本、安装依赖以及构建生产环境。

相关推荐
Neolock1 分钟前
从一开始的网络攻防(四):XSS
前端·网络·安全·web安全·xss
Earnestfu4 分钟前
Appcms存储型XSS
前端·安全·xss
KabeAi4 分钟前
XSS学习总结
前端·学习·xss
欧阳天羲2 小时前
交通出行大前端与 AI 融合:智能导航与出行预测
前端·人工智能·状态模式
倪旻萱4 小时前
XSS漏洞----基于Dom的xss
前端·xss
JSON_L6 小时前
Vue rem回顾
前端·javascript·vue.js
brzhang8 小时前
颠覆你对代码的认知:当程序和数据只剩下一棵树,能读懂这篇文章的人估计全球也不到 100 个人
前端·后端·架构
斟的是酒中桃8 小时前
基于Transformer的智能对话系统:FastAPI后端与Streamlit前端实现
前端·transformer·fastapi
烛阴9 小时前
Fract - Grid
前端·webgl
JiaLin_Denny9 小时前
React 实现人员列表多选、全选与取消全选功能
前端·react.js·人员列表选择·人员选择·人员多选全选·通讯录人员选择