UNPKG

jjz-deploy

Version:

基于NodeJS的前端部署工具,将前端打包好的目录进行压缩、上传到服务器、备份并且解压到服务器目录

38 lines (35 loc) 1.08 kB
const fs = require('fs'); const path = require('path'); const archiver = require('archiver'); const log = require('../util/log'); module.exports = function compress (destPath, sucCb, failCb) { if (!fs.existsSync(destPath)) { return log.error(`不存在 ${ destPath } 目录`); } const filename = path.basename(destPath); const output = fs.createWriteStream(`${ filename }.zip`); // 写入结束 output.on('close', () => { const kb = archive.pointer() / 1024; const unit = kb > 100 ? 'MB' : 'KB'; log.success(` 生成的大小${ (kb > 100 ? kb / 1024 : kb).toFixed(1) + unit } 请在当前目录下寻找${ filename }.zip文件 `); sucCb(destPath + '.zip'); }); output.on('end', () => { log.error('压缩失败'); failCb && failCb(); }); const archive = archiver('zip', { zlib: { level: 9 } }); archive.on('error', () => { log.error('压缩失败'); failCb && failCb(); }); archive.pipe(output); archive.directory(destPath, false); archive.finalize(); }