| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | const fs = require('fs');const path = require("path");const archiver = require('archiver')const buildName = process.argv[2] //打包后的名字// 获取当前命令行上下文路径const currentDirectory = process.cwd();console.log(`----------------------------`)console.log(`正在准备打包为zip压缩文件...`)const distJoinPath = path.join(currentDirectory, '/zip/');if(!fs.existsSync(distJoinPath)) {    console.log(`zip文件夹不存在,准备创建...`)    fs.mkdir(distJoinPath, (err)=>{        if(err){            console.log('zip文件夹创建失败')        }else{            console.log('zip文件夹创建成功')        }    })}// 创建文件输出流console.log(`初始化zip文件流...`)const distZipPath = path.join(currentDirectory, `/zip/${buildName}`);let output = fs.createWriteStream(distZipPath)let archive = archiver('zip', {    zlib: { level: 9 } // 设置压缩级别})// 文件输出流结束output.on('close', function() {    console.log(`打包完成,zip文件位于zip文件夹下,/zip/${buildName}`)})// 数据源是否耗尽output.on('end', function() {    console.log('数据源已耗尽')})// 存档警告archive.on('warning', function(err) {    if (err.code === 'ENOENT') {        console.warn('stat故障和其他非阻塞错误')    } else {        throw err    }})// 存档出错archive.on('error', function(err) {    throw err})// 通过管道方法将输出流存档到文件archive.pipe(output)console.log(`正在将dist文件夹到zip中...`)const distPath = path.join(currentDirectory, '/dist/');//打包dist里面的所有文件和目录archive.directory(distPath, false)//完成归档archive.finalize()
 |