基于webpack或者Nodejs打包与压缩

基于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('运行错误 err', err);
      console.log(`${title}】文章打包错误`);
      console.log(`${title}】文章打包错误 stderr`, stderr);
    } else {
      // console.log('运行成功 stdout', stdout);
      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('运行错误 err', err);
      console.log(`文章打包错误`);
      console.log(`文章打包错误 stderr`, stderr);
    } else {
      // console.log('运行成功 stdout', stdout);
      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`);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值