import archiver from 'archiver'; import moment from 'moment'; import fs from 'fs'; import path from 'path'; import logger from '../../utils/logger'; import { tmpdir } from '../../utils/util'; /** * 打包当天的日志 */ async function loggerPack(): Promise { const logPath = logger.geLogPathByTime(new Date()); if (!fs.existsSync(logPath)) { return ''; } const dirname = await tmpdir(); const dist = path.join(dirname, `${moment().format('YYYY-MM-DD')}.zip`); await new Promise((resolve, reject) => { const output = fs.createWriteStream(dist); const archive = archiver('zip', { zlib: { level: 9 }, // Sets the compression level. }); output.on('close', function () { resolve(); }); archive.on('error', function (err) { reject(err); }); archive.directory(logPath, false); archive.pipe(output); archive.finalize(); }); return dist; } export default loggerPack;