JSZip 简单使用 发表于 2020-06-12 | 分类于 JavaScript JSZip 是一个用于创建、读取和编辑.zip文件的JavaScript库,且API的使用也很简单。如下是使用 JSZip 压缩一个文件夹到指定目录的例子。 zip.js 文件中内容如下: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950let fs = require('fs');let path = require('path');let JsZip = require('jszip');let zip = new JsZip();// 读取目录及文件function readDir(obj, nowPath, nowFolder) { // 读取目录中的所有文件及文件夹 let files = fs.readdirSync(nowPath); files.forEach(function (fileName, index) { // 遍历检测目录中的文件 let fillPath = nowPath + '/' + fileName; let file = fs.statSync(fillPath); if (file.isDirectory()) { // 如果是目录的话,继续查询 let folder = nowFolder + '/' + fileName; // 压缩对象中生成该目录 let dirList = zip.folder(folder); // 重新检索目录文件 readDir(dirList, fillPath, folder); } else { // 如果是文件压缩目录添加文件 obj.file(fileName, fs.readFileSync(fillPath)); } });}// 开始压缩文件function startZIP() { var currPath = __dirname; // 要压缩的文件夹目录 var sourceDir = path.join(currPath, '../../dist:source/'); // 生成压缩包的目录 var targetDir = path.join(currPath, '../../dist:app/static/source.zip'); readDir(zip, sourceDir, ''); zip .generateAsync({ type: 'nodebuffer', compression: 'DEFLATE', compressionOptions: { level: 9, }, }) .then(function (content) { fs.writeFileSync(targetDir, content, 'utf-8'); console.log('压缩完成'); });}startZIP(); 命令: 1node zip.js