Like npm pack but more inclusive

Usage no npm install needed!

<script type="module">
  import strongPack from '';



Simple wrapper for tar for packaging a node application, including everything except version control files (.git, .svn, .hg, etc.). In other words, it is like npm pack, but it does not honour .npmignore and .gitignore.


The strong-pack module exports a single function.


  • arguments:
    • dirname is the path to a node module.
  • return:
    • a readable stream containing the tar stream, rooted in package/ just like npm pack.

The readable stream that is returned is a tar-stream pack stream, which has additional methods on it, including .entry() which can be used for injecting files directly into the tar archive without having to create them on disk first. See the tar-stream docs for more details.


The following example is similar to running npm pack path/to/app if npm ignored all of the normal rules for ignoring/including files.

var fs = require('fs');
var gz = require('zlib').Gzip();
var pack = require('strong-pack');
var tgz = fs.createWriteStream('app.tgz', 'binary');
var appTar = pack('path/to/app');

// inject a file directly into the tar stream without creating a file on disk
appTar.entry({name: 'package/.injected.json'},
             JSON.stringify({key: 'secret'}) + '\n');

// Using pipe
// don't forget to handle errors and clean up ALL your streams!

// Using pump
// streams get cleaned up for you, only one place to check for an error
var pump = require('pump');
pump(appTar, gz, tgz, function(err) {
  // err || done! don't forget to check for an error!


This module is dual licensed and can be used under the terms of either:

Copyright IBM Corp. 2015,2016. All Rights Reserved.