node解壓壓縮包以及壓縮圖片
首先保證電腦安裝node環境,下載地址:http://nodejs.cn
//可以打開一個dos窗口輸入node -v進行確認是否安裝成功 C:\ > node -v > v10.*
然后就是安裝解壓壓縮包的第三方插件 和 tinypng的插件
npm install compressing //解壓壓縮包的第三方插件 npm isntall tinify //解壓圖片的壓縮
如何使用?
解壓壓縮包,這里以解壓tgz格式的壓縮包為例,compressing的API:https://www.npmjs.com/package/compressing
var compressing = require("compressing")
let nowFilePath = "01.tgz" //當前目錄下解壓的文件名 let positionFilePath = "01"//需要解壓到當前目錄下的目錄名 compressing.tgz.uncompress(nowFilePath, positionFilePath) .then(() => { console.log(nowFilePath + "解壓完成") }) .catch(err => { console.log("解壓失敗:"+err); })
使用遞歸的方法去解壓多個壓縮包
//定義一個函數 function decompressionFiles(files,length){ if(length==0){ //在這里我們確定壓縮包全部解壓后可以操作的事情 return console.log("沒有找到壓縮包,或壓縮已完成!") } let positionFilePath=files.replace(".tgz","") compressing.tgz.uncompress(files[length-1], positionFilePath) .then(() => { console.log(nowFilePath + "解壓完成") decompressionFiles(files,length-1) }) .catch(err => { console.log("解壓失敗:"+err); }) } var fileArray=["01.tgz","02.tgz","03.tgz","04.tgz"] //在這里假設是當前目錄下的01.tgz等壓縮包 //在這里我們只需調用函數即可 decompressionFiles(fileArray,fileArray.length)
博主還寫了一個windows本地壓縮圖片的工具,windows可執行文件,點擊運行,根據指令批量壓縮圖片。
碼雲下載地址:https://gitee.com/kong_yiji_and_lavmi/imagemin
壓縮圖片[tinify的API](https://www.npmjs.com/package/tinify)(熊貓壓縮)[申請key](https://tinypng.com/developers)
var tinify = require("tinify"); var path= require("path"); tinify.key = "YOU.RAPI.KEY"; //這里需要填寫你在熊貓注冊的key,只需要一個郵箱即可 let nowFilePath = path.join(dirname,"01.jpg") //假設是當前目錄下的01.jpg let filePositionPath = path.join(dirname,"image","02.jpg") //把它解壓到當前目錄下的image文件夾里,並命名為02.jpg tinify.fromFile(nowFilePath).toFile(filePositionPath) .then(()=>{ console.log(nowFilePath + "解壓完成") }).catch(err=>{ console.log("解壓失敗:"+err); }) //當然如果壓縮多張圖片也可以使用遞歸的方式去處理。如果圖片數量多的話,壓縮時間會有點慢,還有拓展的空間。