本篇文章給大家分享一個node實戰(zhàn),手把手帶你使用node開發(fā)一個命令行壓縮工具,希望對大家有所幫助!
hello,最近寫了一個壓縮文件的命令行工具,今天分享給大家。
起因
-
由于前公司一些不可抗的情況,最近換了工作,吃飯的家伙也從Mac轉(zhuǎn)成了Win,之前用Mac的時候,習(xí)慣了終端操作,現(xiàn)在用Win,感覺不是很適應(yīng),盡管Win自帶的
powershell
也很強(qiáng)大。 -
工作中開發(fā)的項目在測試的時候需要先壓縮成壓縮包,再上傳到對應(yīng)的桌面應(yīng)用測試。
-
在網(wǎng)上下載的壓縮軟件大都捆綁的有廣告,hen~煩
-
powershell
的壓縮命令太長了,用起來不方便,并且桌面應(yīng)用ide升級之后,通過Compress-Archive
壓縮的文件不能被正確的解析。 -
最后一個原因,我不想再去學(xué)
powershell
的指令了?。?!

綜合上述的原因,我用nodejs寫了一個壓縮工具 fzip
對比
來跟 Compress-Archive
做一下對比
- 使用
fzip
壓縮
fzip -f ./test
- 使用
Compress-Archive
進(jìn)行壓縮
Compress-Archive -Path ./test -DestinationPath ./test.zip # 解釋一下參數(shù) # -Path 來源 # -DestinationPath 輸出位置
上邊兩條指令都會將當(dāng)前目錄下的test目錄壓縮成一個zip包,但是使用 powershell
的指令真的很長啊有木有!
當(dāng)然了,fzip
也是支持指定輸出位置和命名壓縮包的,不僅如此,還支持設(shè)置壓縮等級!下邊會有詳細(xì)的文檔供您食用!
使用方法
- 使用
npm
安裝
npm install @lxqddd/fzip -g
- 使用
yarn
安裝
yarn install @lxqddd/fzip -g
- 使用
pnpm
安裝
pnpm install @lxqddd/fzip -g
參數(shù)說明
參數(shù) | 參數(shù)來源 | 參數(shù)注解 |
---|---|---|
-f | From | 壓縮目標(biāo)來源(必選) |
-o | Output | 壓縮產(chǎn)物輸出位置(可選,不傳則為來源同級目錄) |
-l | Level | 壓縮級別 0~9(可選,不傳則默認(rèn)為 6) |
-n | Name | 壓縮包名稱(可選,不傳則默認(rèn)為文件或目錄的名字) |
使用示例
. ├── LICENSE ├── README.md ├── gulpfile.js ├── package.json ├── src │ ├── cli.ts │ ├── core │ │ └── index.ts │ ├── types │ │ └── index.ts │ └── utils │ └── index.ts ├── tsconfig.json └── yarn.lock
- 基礎(chǔ)用法
# 指令執(zhí)行之后會在 `src` 的同級目錄輸出一個 `src.zip` 的壓縮包 fzip -f ./src
- 指定輸出位置
# 指令執(zhí)行之后會在桌面上輸出一個 `src.zip` 的壓縮包 fzip -f ./src -o ~/Desktop
- 指定壓縮等級
# 壓縮產(chǎn)物的壓縮級別為 9 fzip -f ./src -o ~/Desktop -l 9
- 重命名
# 指令執(zhí)行之后會在 `src` 的通級目錄下輸出一個名為 `test.zip` 的壓縮包 fzip -f ./src -n test
上邊說的都是壓縮目錄的,也可以壓縮單個文件,使用方法類似,只需要將輸入路徑指向被壓縮的目標(biāo)文件即可
- 壓縮單個文件
# 指令執(zhí)行之后會在桌面輸出一個名為 `test.zip` 的壓縮包 fzip -f ./src/cli.ts -o ~/Desktop -n test -l 9
項目地址:https://github.com/lxqddd/FZip
如果你覺得寫的不錯的話,歡迎三連~