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版本、安装依赖以及构建生产环境。

相关推荐
weixin_3823952321 小时前
为小工厂量身打造:本地部署的物料管理系统带缺料计算
前端·制造
__zRainy__21 小时前
解决pnpm v10+不自动构建
前端·pnpm·工程化
猫猫不是喵喵.21 小时前
Vue3 Props 属性
前端·javascript·vue.js
醉城夜风~1 天前
CSS元素显示模式(display)
前端·css
AI大模型-小华1 天前
Codex 三方充值快速入门指南
java·前端·数据库·chatgpt·ai编程·codex·chatgpt pro
做前端的娜娜子1 天前
同一链接实现 PC Web 与移动 H5 自适应
前端·掘金·金石计划
小帅不太帅1 天前
架构没变、规模没变,DeepSeek V4 Flash 正式版凭什么暴涨 47 分?
前端·aigc·deepseek
jarvisuni1 天前
DeepSeekFlash前端依旧拉垮,而且变慢了很多!
前端·javascript·算法
卷福同学1 天前
AI编程出海第二步:验证关键词能否做站
前端·人工智能·后端