const path = require('path') const fs = require('fs') var compressing = require('compressing') const axios = require('axios') const child_process = require('child_process') function parseTime(time, format = 'yyyy-MM-dd hh:mm:ss') { const date = time instanceof Date ? time : new Date(time) const o = { 'M+': date.getMonth() + 1, // 月份 'd+': date.getDate(), // 日 'h+': date.getHours(), // 小时 'm+': date.getMinutes(), // 分 's+': date.getSeconds(), // 秒 'q+': Math.floor((date.getMonth() + 3) / 3), // 季度 'S': date.getMilliseconds() // 毫秒 } if (/(y+)/.test(format)) { format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) } for (const k in o) { if (new RegExp('(' + k + ')').test(format)) { format = format.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length))) } } return format } /** * 打包插件 v2.0 * youfool */ class IncrePack { constructor(options) { this.options = options } apply(compiler) { const projectPath = path.join(__dirname, '../') const distPath = projectPath + 'dist' compiler.hooks.done.tap('IncrePack', async (compilation, callback) => { // 排除开发环境 if (process.env.ENV !== 'development') { const increName = `${this.options.name}.zip` // 打包压缩 const tempFile = projectPath + '/' + increName compressing.zip.compressDir(distPath, tempFile, { ignoreBase: true }) .then(() => { // 剪切回dist目录下 fs.renameSync(tempFile, distPath + '/' + increName) console.log('------------------打包成功------------------') }) .catch(err => { console.error(err) }) } }) } } module.exports = IncrePack