Archiver v1.2.0

Build Status Build status

a streaming interface for archive generation

Visit the API documentation for a list of all methods available.

Install

npm install archiver --save

Quick Start

// require modules
var fs = require('fs');
var archiver = require('archiver');

// create a file to stream archive data to.
var output = fs.createWriteStream(__dirname + '/example.zip');
var archive = archiver('zip', {
    store: true // Sets the compression method to STORE.
});

// listen for all archive data to be written
output.on('close', function() {
  console.log(archive.pointer() + ' total bytes');
  console.log('archiver has been finalized and the output file descriptor has closed.');
});

// good practice to catch this error explicitly
archive.on('error', function(err) {
  throw err;
});

// pipe archive data to the file
archive.pipe(output);

// append a file from stream
var file1 = __dirname + '/file1.txt';
archive.append(fs.createReadStream(file1), { name: 'file1.txt' });

// append a file from string
archive.append('string cheese!', { name: 'file2.txt' });

// append a file from buffer
var buffer3 = new Buffer('buff it!');
archive.append(buffer3, { name: 'file3.txt' });

// append a file
archive.file('file1.txt', { name: 'file4.txt' });

// append files from a directory
archive.directory('subdir/');

// append files from a glob pattern
archive.glob('subdir/*.txt');

// finalize the archive (ie we are done appending files but streams have to finish yet)
archive.finalize();

Formats

Archiver ships with out of the box support for TAR and ZIP archives.

You can register additional formats with registerFormat.

Formats will be changing in the next few releases to implement a middleware approach.

Changelog

1.2.0 November 2, 2016_Diff

  • Add a process.emitWarning for deprecated (#202)

1.1.0 August 29, 2016_Diff

  • minor doc fixes.
  • bump deps to ensure latest versions are used.

1.0.1July 27, 2016Diff

  • minor doc fixes.
  • dependencies upgraded.

1.0.0April 5, 2016Diff

  • version unification across many archiver packages.
  • dependencies upgraded and now using semver caret (^).

0.21.0December 21, 2015Diff

  • core: add support for entry.prefix. update some internals to use it.
  • core(glob): when setting options.cwd get an absolute path to the file and use the relative path for entry.name. #173
  • core(bulk): soft-deprecation of bulk feature. will remain for time being with no new features or support.
  • docs: initial jsdoc for core. http://archiverjs.com/docs
  • tests: restructure a bit.

0.20.0November 30, 2015Diff

  • simpler path normalization as path.join was a bit restrictive. #162
  • move utils to separate module to DRY.

Release Archive