背景
项目使用了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,其目的是构建前端项目。以下是脚本的详细解释:
-
sh '''
:这是一个shell脚本的多行字符串开始标记,表示接下来的内容将作为shell命令执行。 -
安装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环境。
-
安装Node.js 18.20.4并安装yarn:
nvm install 18.20.4
:使用nvm安装Node.js 18.20.4版本。npm install -g yarn
:使用npm全局安装yarn包管理器。
-
安装依赖:
yarn install
:运行yarn命令安装项目依赖。
-
切换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可用。
-
输出当前Node.js版本:
echo "当前Node.js版本:"
:打印提示信息。node -v
:输出当前使用的Node.js版本。
-
构建生产环境:
yarn run build:prod
:运行yarn命令,执行项目的生产环境构建脚本。
整个脚本的目的是在一个Jenkins Pipeline中自动化前端项目的构建过程,包括安装nvm、切换Node.js版本、安装依赖以及构建生产环境。