node项目自动打zip压缩包

本文介绍如何使用Node.js实现项目的自动压缩打包功能,包括普通Node项目、Vue-cli2及Vue-cli3项目。通过安装特定依赖并配置脚本,能够轻松地将指定目录压缩为ZIP文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

node项目自动打zip压缩包

普通node项目

参考文章:

https://www.cnblogs.com/xieqian/p/10973324.htmlhttps://blog.csdn.net/weixin_43968658/article/details/102949470

安装依赖

yarn add compressing -D
yarn add dayjs -D

脚本

node执行以下脚本,就可以实现将dist目录打包到./zip目录下,自定义zip文件名

const path = require("path");
const fs = require("fs");
const chalk = require("chalk");
// 这个是主角
const compressing = require("compressing");
const dayjs = require("dayjs");

const resolve = dir => path.join(__dirname, "..", dir);
const publishPath = resolve("publish");
const zipName = (() => `.zip/dist_sit_${dayjs().format("YYYYMMDDHHmm")}.zip`)();

// 判断是否存在当前publish路径,没有就新增
if (!fs.existsSync(publishPath)) {
  fs.mkdirSync(publishPath);
}

compressing.zip
  .compressDir(resolve("dist/"), resolve(zipName))
  .then(() => {
    console.log(chalk.yellow(`Tip: 文件压缩成功,已压缩至【${resolve(zipName)}】`));
  })
  .catch(err => {
    console.log(chalk.red("Tip: 压缩报错"));
    console.error(err);
  });

vue-cli2项目

安装依赖

yarn add filemanager-webpack-plugin@2.0.5 -D
yarn add dayjs -D

脚本

const FileManagerWebpackPlugin = require('filemanager-webpack-plugin')
const dayjs = require("dayjs")
const zipName = `.zip/dist_sit_${dayjs().format("YYYYMMDDHHmm")}.zip`

let kkm = new FileManagerWebpackPlugin ({  // 需要在 plugins 数组里添加
  onEnd: {
    // delete: [
    //   './zip/xxxx.zip', // 删除之前已经存在的压缩包
    // ],
    mkdir: ['.zip'], // 需要先创建.zip文件夹,否则压缩会报找不到路径
    archive: [
      {source: './dist', destination: zipName},
    ]
  }
})

webpackConfig.plugins.push(kkm)

module.exports = webpackConfig

vue-cli3项目

安装依赖

yarn add filemanager-webpack-plugin@2.0.5 -D
yarn add dayjs -D

脚本

const FileManagerPlugin = require('filemanager-webpack-plugin')
const dayjs = require('dayjs')

module.exports = {
  // 方式一:
  configureWebpack: { // webpack的相关配置在这里
    plugins: [
      new FileManagerPlugin({ // 初始化 filemanager-webpack-plugin 插件实例
        onEnd: {
          // delete: [ // 首先需要删除项目根目录下的dist.zip
          //   './projectName.zip'
          // ],
          mkdir: ['.zip'], // 需要先创建.zip文件夹,否则压缩会报找不到路径
          archive: [ // 然后我们选择dist文件夹将之打包成dist.zip并放在根目录
            { source: './dist', destination: `.zip/dist_sit_${dayjs().format('YYYYMMDDHHmm')}.zip` }
          ]
        }
      })
    ]
  }

  // 方式二:
  // chainWebpack: webpackConfig => {
  //   webpackConfig.plugin('zip').use(require('filemanager-webpack-plugin'), [
  //     {
  //       onEnd: {
  //         mkdir: ['.zip'], // 需要先创建.zip文件夹,否则压缩会报找不到路径
  //         archive: [
  //           {
  //             source: 'dist',
  //             destination: `.zip/dist_sit_${dayjs().format('YYYYMMDDHHmm')}.zip`
  //           }
  //         ]
  //       }
  //     }
  //   ])
  // }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值