aiccs/build/increpack.js

62 lines
1.8 KiB
JavaScript

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