@chrono-meter/wp-zip-package
v1.0.2
Published
Create a distributable zip archive of a WordPress plugin or theme, respecting `.distignore` or `.gitignore`.
Readme
@chrono-meter/wp-zip-package
Create a distributable zip archive of a WordPress plugin or theme, respecting .distignore or .gitignore. The package automatically infers plugin or theme metadata, such as slug and version.
Usage
npx @chrono-meter/wp-zip-package --source-directory <path> [options]
# or
pnpx @chrono-meter/wp-zip-package --source-directory <path> [options]Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
| --source-directory | string | Yes | Path to the plugin or theme directory to archive. |
| --output | string | No | Path to the output .zip file, or a directory to place it in. If omitted, inferred as <name>-<version>.zip beside the source directory using package.json. |
| --slug | string | No | The top-level directory name inside the zip. Inferred from package.json name, or the source directory name as a fallback. |
| --force | true | No | Overwrite the output file if it already exists. |
Examples
Basic — output path inferred from package.json:
npx @chrono-meter/wp-zip-package --source-directory ./my-plugin
# → ./my-plugin/my-plugin-1.0.0.zipExplicit output file:
npx @chrono-meter/wp-zip-package --source-directory ./my-plugin --output ./release/my-plugin.zipOutput to a directory (file name inferred):
npx @chrono-meter/wp-zip-package --source-directory ./my-plugin --output ./release/
# → ./release/my-plugin-1.0.0.zipOverride the in-zip slug and force overwrite:
npx @chrono-meter/wp-zip-package --source-directory ./my-plugin --slug my-plugin --output ./release/ --forcepackage.json example:
{
"scripts": {
"zip-release": "pnpx @chrono-meter/wp-zip-package --source-directory=./ --output=./release/"
}
}Ignore rules
Files are filtered using .distignore if present, otherwise .gitignore. Standard gitignore glob syntax is supported.
