使用Jenkins部署nodejs前端项目
1. 安装node环境
1.1 下载
https://nodejs.org/zh-cn/download
1.2 解压到安装目录
tar -xJvf node-v22.15.1-linux-x64.tar.xz
mv node-v22.15.1-linux-x64 /home/soft/
mv node-v22.15.1-linux-x64/ node22
原本计划安装 node22和node18,但是CentOS7.9 GLIBCXX 版本过低,升级这个代价挺大的,可能导致系统奔溃,看来CentOS7.9
已经退出历史的舞台了。
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
最后将node版本降至16
tar -xJvf node-v16.20.2-linux-x64.tar.xz
mv node-v16.20.2-linux-x64 /home/soft/
cd /home/soft/
mv node-v16.20.2-linux-x64/ node16
将node版本降至16后,项目打包失败了,最后没办法重新装了操作系统为Rocky Linux 8.10
,安装node 18成功了。
但是运行 npm -v
的时候报错 Error: Cannot find module '../lib/cli.js'
,在DeepSeek
的帮助下找到了解决办法
cat /home/soft/node18/bin/npm#输出结果为
#!/usr/bin/env node
require('../lib/cli.js')(process)
手动修正 npm 脚本路径
# 编辑 npm 脚本
vim /home/soft/node18/bin/npm# 将路径改为绝对路径(根据实际位置)
#!/usr/bin/env node
require('/home/soft/node18/lib/node_modules/npm/lib/cli.js')(process)
1.3 配置环境变量
vim /etc/profile
export NODE_HOME=/home/soft/node16
$PATH:$NODE_HOME/bin
重载配置文件
source /etc/profile
重新打开终端,然后查看安装是否成功
node -v
npm -v
1.4 配置国内镜像
npm config set registry https://registry.npmmirror.com
npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass
2. Jenkins 安装 NodeJS 插件
2.1 插件安装
NodeJS
2.2 重启Jenkins
浏览器访问 http://ip:8080/restart
3. Jenkins 配置 node
4. 项目配置
4.1 新建Item
# 服务器部署路径
REMOTE_DIR="/home/app/commuter/commuter-dev/ui" echo "📦 安装 npm 依赖..."
npm install --registry=https://registry.npmmirror.com
echo "🔨 开始构建项目..."
npm run build
if [ ! -d "./dist" ]; thenecho "❌ 构建失败:未找到编译后dist目录"exit 1
fi
zip -r dist.zip dist
echo "📦 安装 npm 依赖..."
cd $REMOTE_DIR
rm -rf dist*
echo "移动dist文件..."
mv -v ${WORKSPACE}/dist.zip $REMOTE_DIR || { echo "移动dist文件失败"; exit 1; }
ls -l
echo "解压dist文件..."
unzip dist.zip
echo "🎉 部署完成!"
4. 出现的问题
- 一般windows系统不区分大小写,但是Linux系统区分,有时候前端代码路径如果没有区分大小写可能导致项目build失败。