You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
importfsfrom"fs";import{ZipArchive}from"archiver";// create a file to stream archive data to.constoutput=fs.createWriteStream(__dirname+"/example.zip");constarchive=newZipArchive({zlib: {level: 9},// Sets the compression level.});// listen for all archive data to be written// 'close' event is fired only when a file descriptor is involvedoutput.on("close",function(){console.log(archive.pointer()+" total bytes");console.log("archiver has been finalized and the output file descriptor has closed.",);});// This event is fired when the data source is drained no matter what was the data source.// It is not part of this library but rather from the NodeJS Stream API.// @see: https://nodejs.org/api/stream.html#stream_event_endoutput.on("end",function(){console.log("Data has been drained");});// good practice to catch warnings (ie stat failures and other non-blocking errors)archive.on("warning",function(err){if(err.code==="ENOENT"){// log warning}else{// throw errorthrowerr;}});// good practice to catch this error explicitlyarchive.on("error",function(err){throwerr;});// pipe archive data to the filearchive.pipe(output);// append a file from streamconstfile1=__dirname+"/file1.txt";archive.append(fs.createReadStream(file1),{name: "file1.txt"});// append a file from stringarchive.append("string cheese!",{name: "file2.txt"});// append a file from bufferconstbuffer3=Buffer.from("buff it!");archive.append(buffer3,{name: "file3.txt"});// append a filearchive.file("file1.txt",{name: "file4.txt"});// append files from a sub-directory and naming it `new-subdir` within the archivearchive.directory("subdir/","new-subdir");// append files from a sub-directory, putting its contents at the root of archivearchive.directory("subdir/",false);// append files from a glob patternarchive.glob("file*.txt",{cwd: __dirname});// finalize the archive (ie we are done appending files but streams have to finish yet)// 'close', 'end' or 'finish' may be fired right after calling this method so register to them beforehandarchive.finalize();
Formats
Archiver ships with out of the box support for TAR and ZIP archives.