62 lines
1.8 KiB
JavaScript
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
|