node壓縮文件夾之compressing


發現問題

項目上線

經過了一段時間的打包(即熟悉的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壓縮包給上線人員)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM