Generate a dedicated package.json for publishing without development bloat.
- Only include properties you need for publishing
- Override development values
- Addition of new properties
- Install the ppjg as a development dependency
node i -D ppjg- Create a new publish config called
ppj.config.jsin your project root directory - Define which
package.jsonkeys to persist and which to override:
module.exports = {
persist: ['author', 'dependencies'],
alter: {
version: process.env.VERSION
}
};- Run ppjg by executing the
generatePublishPackageJsonfunction 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"
}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' } } |
| 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} |
The provided binary offers easy invocation via the CLI or NPM script.
- Directly execute the binary with
npx:
npx ppjg [options]- Create a new script entry invoking the binary:
{
"scripts": {
"generatePPJ": "ppjg [options]"
}
}- Run the script:
npm run generatePPJ- 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);