乘风破浪 激流勇进
你好!欢迎来看Tuziki's Planet !
nodejs本地打包与CICD流水线的对接
作者:tutu 日期:2024-10-16
本地打包的场景往往出现在服务器的Jenkins流水线里面的操作系统环境版本过低,导致nodejs版本过低,无法支持姣新版本前端框架和插件的打包编译,需要开发者在本地进行打包完上传,服务端只负责解压缩、备份、更新文件,这些操作。所以使用时,需要修改Jenkins流水线的发布流程改为解析git仓库的文件包
在根目录下创建zipDist.mjs文件
安装依赖:npm i archiver -D
在package.json中顶部 “type”: “module” ,scripts脚本中新增 “dist”: “node zipDist.mjs”,
执行 npm run dist
zipDist.mjs文件:
import fs from ‘fs’
import archiver from ‘archiver’
import path from ‘path’
// 定义dist文件夹和输出文件的路径
const distPath = path.join(‘dist’)
const zipFilePath = path.join(‘dist.zip’)
// 检查dist.zip文件是否存在,如果存在则删除
if (fs.existsSync(zipFilePath)) {
fs.unlinkSync(zipFilePath)
}
// 创建一个文件以写入压缩包
const output = fs.createWriteStream(zipFilePath)
const archive = archiver(‘zip’, {
zlib: { level: 9 }, // 设置压缩级别
})
// 监听错误事件
archive.on(‘error’, function (err) {
throw err
})
// 管道压缩流到文件
archive.pipe(output)
// 使用目录
archive.directory(distPath, false)
// 完成压缩并关闭流
archive.finalize()
返回列表
返回顶部←