美文网首页
node压缩文件夹之compressing

node压缩文件夹之compressing

作者: 蟹行者 | 来源:发表于2019-06-04 14:18 被阅读0次

    发现问题

    项目上线

    经过了一段时间的打包(即熟悉的npm run build)、压缩(通过压缩工具压成.zip包)、上线(把压缩包发给上线人员),终于,发现了有优化的空间,哈哈。

    什么?项目上线还属于人工操作?利用压缩包的方式?还没用到自动化部署?

    打扰了,打扰了。

    主角登场

    找了一下,发现了一个好用又方便的包 compressing,支持压缩文件夹,支持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 = (() => `publish/fzApp ${dayjs().format("YYYYMMDD_HHmm")}.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);
        });
    
    

    问题解决

    在自动压缩这个点上,问题是解决了的。

    于是,以后上线的流程变成了:
    打包(npm run build && npm run zip)、上线(发送zip压缩包给上线人员)。

    相关文章

      网友评论

          本文标题:node压缩文件夹之compressing

          本文链接:https://www.haomeiwen.com/subject/lublxctx.html