基于webpack来进行目录下的压缩
const FileManagerWebpackPlugin = require("filemanager-webpack-plugin");
const title = "*****";
plugins: [
new FileManagerWebpackPlugin({
events: {
onEnd: {
delete: [
`./zips/${title}-${process.env.NODE_ENV == "production" ? "正式环境" : "测试环境"
}.zip`
],
archive: [
{
source:
process.env.NODE_ENV == "production" ? "./dist" : "./disttest",
destination: `./zips/${title}-${process.env.NODE_ENV == "production" ? "正式环境" : "测试环境"
}.zip`
}
]
}
}
})
]
nodejs执行shell命令进行打包
const exec = require('child_process').exec;
const { dataMode } = require("./data.js");
let maxLen = dataMode.length
let startTime = new Date()
let index = 0
exec2(index)
function exec2(index) {
let title = dataMode[index].title
console.log(`【${title}】文章打包开始`);
exec(`set active=${index} && npm run test && npm run build`, function (err, stdout, stderr) {
if (err) {
console.log(`【${title}】文章打包错误`);
console.log(`【${title}】文章打包错误 stderr`, stderr);
} else {
console.log(`【${title}】文章打包成功`);
}
index++
if (index < maxLen) {
exec2(index)
} else {
console.log('全部文章打包结束');
let endTime = new Date()
console.log(`耗费时间${Math.round((endTime - startTime) / 1000)}s`);
}
});
}
基于nodejs文件来进行目录下的压缩
const exec = require('child_process').exec;
const fs = require('fs');
const archiver = require('archiver');
let startTime = new Date()
exec2()
function exec2() {
console.log(`文章打包开始`);
exec(`npm run build`, function (err, stdout, stderr) {
if (err) {
console.log(`文章打包错误`);
console.log(`文章打包错误 stderr`, stderr);
} else {
console.log(`文章打包成功`);
}
console.log('全部文章打包结束');
compressZip()
console.log('文章压缩zip文件开始');
});
}
function compressZip() {
var output = fs.createWriteStream('./zips/****.zip');
var archive = archiver('zip', {
zlib: { level: 9 }
});
archive.on('error', function (err) {
throw err;
});
archive.pipe(output);
archive.directory('dist/', '/')
archive.finalize();
console.log('文章压缩zip文件结束');
let endTime = new Date()
console.log(`耗费时间${Math.round((endTime - startTime) / 1000)}s`);
}