ppjg
v1.0.0
Published
Remove development bloat form your published package.json
Downloads
5
Maintainers
Readme
Publish Package JSON Generator
Generate a dedicated package.json
for publishing without development bloat.
- Only include properties you need for publishing
- Override development values
- Addition of new properties
Quick Start
- Install the ppjg as a development dependency
node i -D ppjg
- Create a new publish config called
ppj.config.js
in your project root directory - Define which
package.json
keys to persist and which to override:
module.exports = {
persist: ['author', 'dependencies'],
alter: {
version: process.env.VERSION
}
};
- Run ppjg by executing the
generatePublishPackageJson
function or by executing the binary via Node
VERSION='V1' npx ppjg
- Generated example
./out/package.json
{
"author": "John Doe",
"dependencies": {
"example": "1.0.0"
},
"version": "V1"
}
Configuration
The Publish-Configuration
The publish-configuration defines which properties of the projects package.json
are kept and which will be overwritten.
By default, the publish-configuration is defined inside the ppj.config.js
.
To provide a differently named configuration, see the Generator Configuration section.
Property | Description | Config Property
---------|-------------|----------------
persist
| An array of property names which will be kept inside the publish-configuration| { persist: ['author', 'name'] }
alter
| An object of new or altered properties and their values| { alter: { bin: './cli.js' } }
The Generator Configuration
Property | Description | CLI Flag | Config Property
---------|-------------|----------|----------------
Output Directory|Defines the location of the generated package.json
|-o, --outDir DIRECTORY
|{ outDir: DIRECTORY }
Publish Config File|File name of the config used for the generation|-c, --config FILE
|{publishConfigFileName: FILE}
Usage
Binary
The provided binary offers easy invocation via the CLI or NPM script.
CLI
- Directly execute the binary with
npx
:
npx ppjg [options]
NPM script
- Create a new script entry invoking the binary:
{
"scripts": {
"generatePPJ": "ppjg [options]"
}
}
- Run the script:
npm run generatePPJ
Programmatically
- It is also possible to invoke the generator function directly:
import { generatePublishPackageJson, GeneratorConfigModel } from 'ppjg';
const config: Partial<GeneratorConfigModel> | undefined = { /* optional config data */ }
generatePublishPackageJson(config);