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:
- 
Backs up the following files - package.json
- package-lock.json
- yarn.lock
- .npmignore
 
- 
Adds all dependencies as bundledDependenciesin the active package.json- Pass the --dev-depsflag to add devDependencies along with production dependencies
 
- Pass the 
- 
Generates an empty .npmignore file in the project root - 
If no .npmignore exists, npm packwill use .gitignore to exclude modules(node_modules by default in many cases) 
 
- 
- 
Calls npm -dd pack- 
The following will be packed into a .tgz archive: - Any files (via glob) called out in the package.json filesfield
- All production dependencies (and their dependencies)
- If --dev-deps, all devDependencies (and their dependencies)
 
- Any files (via glob) called out in the package.json 
 
- 
- 
Restores the files that were backed up 
npm install npm-pack-allOR
yarn add npm-pack-allnode node_modules/.bin/npm-pack-all <optional options>node node_modules/.bin/npm-pack-allOutput 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.tgzBundle 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