npm-build-zip
v2.0.1
Published
`npm run zip` to generate a .zip archive file. Zero CLI deps.
Maintainers
Readme
Installation
npm install --save-dev npm-build-zipRequires Node.js >= 22 (v1.x supports Node 18+).
Example
Modify YourApp/package.json:
"scripts": {
"zip": "npm-build-zip"
}Create the .zip file containing the build folder:
npm run zipArguments
| Flag | Alias | Default | Description |
| --- | --- | --- | --- |
| --source=<dir> | --src, -s | ./build | Folder to zip. |
| --destination=<dir> | --dst, -d | . (cwd) | Output folder. Created if missing. |
| --includes=pkg1,pkg2 | --in | '' | Comma-separated list of packages to bundle (npm-packlist bundled). |
| --name=demo | -n | '' | Suffix appended to the filename, or full name with --name_only. |
| --name_only | --no | false | When passing --name, use it as the full filename. |
| --info | -i | false | Print the archive path. |
| --verbose | -v | false | Print every file added to the archive. |
| --include_hidden | --all | false | Include dotfiles and bypass .gitignore/.npmignore. |
| --exclude=*.map,**/*.test.js | -x | '' | Comma-separated globs to exclude (Node 22+, fs.promises.glob). |
| --no-timestamp | — | false | Embed 1980-01-01 00:00 mtimes for reproducible builds. |
| --help | -h | — | Show usage. |
| --version | -V | — | Show version. |
Filename resolution
By default the file is named <sanitized-package-name>_<sanitized-package-version>[.<suffix>].zip.
- If both
--nameand--name_onlyare set, the file is named<name>.zipandpackage.json#name/#versionare not required. - If
package.jsonis missing or has noname/version, the command exits with a clear error explaining how to fix it.
Migrating from 1.x
The 2.0.0 release drops three runtime dependencies (archiver-promise, sanitize-filename, yargs) and switches to ESM-first. The user-facing CLI is unchanged — all flags and aliases work the same way. The breaking changes are:
- Node.js >= 22 is required (was 18). If you can't upgrade, pin to
1.2.x. - CJS
require('npm-build-zip')is still supported viaindex.cjsshim, butpackreturns a Promise —.then()orawaitis required. - ESM users:
import { pack } from 'npm-build-zip'works as expected.
License
Apache-2.0
