乘风破浪 激流勇进
你好!欢迎来看Tuziki's Planet !

nodejs本地打包与CICD流水线的对接

本地打包的场景往往出现在服务器的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()
标签:nodejs
返回列表
返回顶部←