zip.js

287 阅读1分钟

'use strict';

const fs = require('fs'); const path = require('path'); const pkg = require('./package.json'); // 引入archiver const archiver = require('archiver'); // 打包成.zip const zip = archiver.create('zip', {}); const zipData = [ 'application/', 'xg/', 'dist/', 'node_modules/', 'app.js', 'boot.js', 'favicon.ico', ]; // formatDate const formatDate = (date, format) => { let fn = d => { return ('0' + d).slice(-2); };

if (date && toString.call(date) === '[object String]') { date = new Date(Date.parse(date)); } let d = date || new Date();

format = format || 'YYYY-MM-DD HH:mm:ss'; let formats = { YYYY: d.getFullYear(), MM: fn(d.getMonth() + 1), DD: fn(d.getDate()), HH: fn(d.getHours()), mm: fn(d.getMinutes()), ss: fn(d.getSeconds()), };

return format.replace(/([a-z])\1+/gi, a => { return formats[a] || a; }); }; // 构建名称 const archiveFilePath = path.join( __dirname, ${pkg.name}_v${pkg.version}_${formatDate(new Date(), 'YYYYMMDDHHmmss')}.zip ); // 设置打包路径 const output = fs.createWriteStream(archiveFilePath); zip.pipe(output); zip.bulk([{ src: zipData }]); zip.finalize(); // 监听异常事件 zip.on('error', function(err) { throw err; });