Creates Archives (Zip, Tar) via Node Streams.
npm install archiver --save
You can also use npm install https://github.com/ctalkington/node-archiver/archive/master.tar.gz
to test upcoming versions.
Creates an Archiver instance based on the format (zip, tar, etc) passed. Parameters can be passed directly to Archiver
constructor for convenience.
Registers an archive format. Format modules are essentially transform streams with a few required methods. They will be further documented once a formal spec is in place.
Appends an input source (text string, buffer, or stream) to the instance. When the instance has received, processed, and emitted the input, the entry
event is fired.
Replaced #addFile
in v0.5.
archive.append('string', { name:'string.txt' });
archive.append(new Buffer('string'), { name:'buffer.txt' });
archive.append(fs.createReadStream('mydir/file.txt'), { name:'stream.txt' });
Appends multiple files from passed array of src-dest file mappings, based on Grunt's "Files Array" format. A lazystream wrapper is used to prevent issues with open file limits.
Globbing patterns and multiple properties are supported through use of the file-utils package, based on Grunt's file utilities. Please note that multiple src files to single dest file (ie concat) is not supported.
The data
property can be set (per src-dest mapping) to define file data for matched files.
archive.bulk([
{ src: ['mydir/**'], data: { date: new Date() } },
{ expand: true, cwd: 'mydir', src: ['**'], dest: 'newdir' }
]);
Appends a file given its filepath. Uses a lazystream wrapper to prevent issues with open file limits. When the instance has received, processed, and emitted the file, the entry
event is fired.
archive.file('mydir/file.txt', { name:'file.txt' });
Finalizes the instance. You should listen for the end
/close
/finish
of the destination stream to properly detect completion.
Returns the current byte length emitted by archiver. Use this in your end callback to log generated size.
Each instance is a node Transform
stream and inherits all its events. Events listed here are custom.
Fired when the input has been received, processed, and emitted. Passes file data as first argument.
Sets the zip comment.
If true, forces the file date and time to UTC. Helps with testing across timezones.
If true, all file contents will be archived without compression by default.
Passed to node's zlib module to control compression. Options may vary by node version.
Sets the file name including internal path.
Sets the file date. This can be any valid date string or instance. Defaults to current time in locale.
If true, file contents will be archived without compression.
Sets the file comment.
Sets the file permissions. (experimental)
Sets the size (in bytes) of each record in a block, default is 512 (for advanced users only).
Sets the number of records in a block, default is 20 (for advanced users only).
Compresses the tar archive using gzip, default is false.
Sets the file name including internal path.
Sets the file date. This can be any valid date string or instance. Defaults to current time in locale.
Sets the file permissions. Defaults to 0664.
Concept inspired by Antoine van Wel's node-zipstream.
Tar inspired by isaacs's node-tar.