Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

npm-pack-all

kleingtm6.4kMIT1.12.7

A simple utility to package all node_modules dependencies when running npm pack (not devDependencies)

npm, pack, yarn, package, artifact, dependencies, pack all dependencies, bundle

readme

npm-pack-all

Version Build Status Coverage Status code style: prettier js-standard-style

A simple utility to package all node_modules dependencies when running npm pack (not devDependencies)

This can be useful when wanting to ship dependencies as part of the artifact. While one can install dependencies on a deployed target using package-lock.json and yarn.lock, there can be downsides to that approach, as well.

npm-pack-all utility does the following:

  1. Backs up the following files

    • package.json
    • package-lock.json
    • yarn.lock
    • .npmignore
  2. Adds all dependencies as bundledDependencies in the active package.json

    • Pass the --dev-deps flag to add devDependencies along with production dependencies
  3. Generates an empty .npmignore file in the project root

    • If no .npmignore exists, npm pack will use .gitignore to exclude modules

      (node_modules by default in many cases)

  4. Calls npm -dd pack

    • The following will be packed into a .tgz archive:

      • Any files (via glob) called out in the package.json files field
      • All production dependencies (and their dependencies)
      • If --dev-deps, all devDependencies (and their dependencies)
  5. Restores the files that were backed up

Install

npm install npm-pack-all

OR

yarn add npm-pack-all

Use

node node_modules/.bin/npm-pack-all <optional options>

Basic

node node_modules/.bin/npm-pack-all

Options

--output

Output your .tgz artifact to a different directory (or with a different name)

node node_modules/.bin/npm-pack-all --output build/

OR

node node_modules/.bin/npm-pack-all --output build/artifact.tgz

--dev-deps

Bundle all production dependencies AND devDependencies in the artifact (use with care -- your artifact will balloon)

node node_modules/.bin/npm-pack-all --dev-deps --output build/artifact.tgz

changelog

7.0

  • Raise error if options.cwd is specified, and not a directory

6.0

  • Remove comment and negation pattern support
  • Ignore patterns are always in dot:true mode

5.0

  • Deprecate comment and negation patterns
  • Fix regression in mark and nodir options from making all cache keys absolute path.
  • Abort if fs.readdir returns an error that's unexpected
  • Don't emit match events for ignored items
  • Treat ENOTSUP like ENOTDIR in readdir

4.5

  • Add options.follow to always follow directory symlinks in globstar
  • Add options.realpath to call fs.realpath on all results
  • Always cache based on absolute path

4.4

  • Add options.ignore
  • Fix handling of broken symlinks

4.3

  • Bump minimatch to 2.x
  • Pass all tests on Windows

4.2

  • Add glob.hasMagic function
  • Add options.nodir flag

4.1

  • Refactor sync and async implementations for performance
  • Throw if callback provided to sync glob function
  • Treat symbolic links in globstar results the same as Bash 4.3

4.0

  • Use ^ for dependency versions (bumped major because this breaks older npm versions)
  • Ensure callbacks are only ever called once
  • switch to ISC license

3.x

  • Rewrite in JavaScript
  • Add support for setting root, cwd, and windows support
  • Cache many fs calls
  • Add globstar support
  • emit match events

2.x

  • Use glob.h and fnmatch.h from NetBSD

1.x

  • glob.h static binding.