ADM-ZIP for NodeJS
ADM-ZIP is a pure JavaScript implementation for zip data compression for NodeJS.
Installation
With npm do:
$ npm install adm-zip
Electron file system support described below.
What is it good for?
The library allows you to:
- decompress zip files directly to disk or in memory buffers
- compress files and store them to disk in .zip format or in compressed buffers
- update content of/add new/delete files from an existing .zip
Dependencies
There are no other nodeJS libraries that ADM-ZIP is dependent of
Examples
Basic usage
12345678910111213141516171819202122232425262728293031323334 var AdmZip = require("adm-zip"); // reading archivesvar zip = new AdmZip("./my_file.zip");var password = "1234567890";var zipEntries = zip.getEntries(); // an array of ZipEntry records - add password parameter if entries are password protected zipEntries.forEach(function (zipEntry) { console.log(zipEntry.toString()); // outputs zip entries information if (zipEntry.entryName == "my_file.txt") { console.log(zipEntry.getData().toString("utf8")); }});// outputs the content of some_folder/my_file.txtconsole.log(zip.readAsText("some_folder/my_file.txt"));// extracts the specified file to the specified locationzip.extractEntryTo(/*entry name*/ "some_folder/my_file.txt", /*target path*/ "/home/me/tempfolder", /*maintainEntryPath*/ false, /*overwrite*/ true);// extracts everythingzip.extractAllTo(/*target path*/ "/home/me/zipcontent/", /*overwrite*/ true); // creating archivesvar zip = new AdmZip(); // add file directlyvar content = "inner content of the file";zip.addFile("test.txt", Buffer.from(content, "utf8"), "entry comment goes here");// add local filezip.addLocalFile("/home/me/some_picture.png");// get everything as a buffervar willSendthis = zip.toBuffer();// or write everything to diskzip.writeZip(/*target file name*/ "/home/me/files.zip"); // ... more examples in the wiki
For more detailed information please check out the wiki.
Electron original-fs
ADM-ZIP has supported electron original-fs for years without any user interractions but it causes problem with bundlers like rollup etc. For continuing support original-fs or any other custom file system module. There is possible specify your module by fs option in ADM-ZIP constructor.
Example:
12345678 const AdmZip = require("adm-zip");const OriginalFs = require("original-fs"); // reading archivesconst zip = new AdmZip("./my_file.zip", { fs: OriginalFs });...
免责声明 © 2026 - 虚宝阁
本站部分源码来源于网络,版权归属原开发者,用户仅获得使用权。依据《计算机软件保护条例》第十六条,禁止:
- 逆向工程破解技术保护措施
- 未经许可的分发行为
- 去除源码中的原始版权标识
※ 本站源码仅用于学习和研究,禁止用于商业用途。如有侵权, 请及时联系我们进行处理。