Clean `package.json` for publishing. Remove properties that don't need to be in the published package.json, e.g. `devDependencies` or `prettier`.
npm install @lusc/clean-packageClean package.json for publishing. Remove properties that don't need to be in the published package.json, e.g. devDependencies or prettier.
This tool is intentionally minimal. Use git to restore the original package.json.
``bash`
npm install -D @lusc/clean-package
yarn add -D @lusc/clean-package
`bash
cd path/to/repopackage.json is in current directory
clean-package devDependencies scripts.buildsupports nested removal ^^^^^^^^^^^^^
See my publish.yml Github Actions workflow to see how I use this package.
Options
$3
By default, the keys of the clean
package.json will be sorted. Use --no-sort to disable this behaviour.$3
Use
--dry-run or -n to check how package.json will be modified. The cleaned package.json will be printed to stdout instead.$3
By default, tabs are used for indentation. Use
--indent to overwrite this.$3
By default, the
package.json in the current directory is modified. Pass a different directory to --package or -p if the package.json isn't found in the current directory.If the file to be modified isn't called
package.json pass the path to the file to --package and it will just as well.Library
@lusc/clean-package can be used as a library too. Simply import it as so:`typescript
import {cleanPackage} from '@lusc/clean-package';
`$3
`typescript
function cleanPackage(options: {
// Path to package.json or the directory containing it
// required
packageJson: string | URL; // Keys to remove from package.json
// e.g.
keys: [['devDependencies'], ['scripts']]
// Supports nested keys, e.g. [['scripts', 'test']] -> delete packageJson.scripts.test
// required
keys: string[][]; // Indentation to use. Same usage as with
JSON.stringify
// default \t
indent?: string | number; // Sort keys (sorts deeply)
// default true
sort?: boolean;
// Don't write result to file
// default false
dryRun?: boolean;
// Why a string? Ensure that the returned result is identical
// to the written result, namely the sorting and indentation
}): Promise;
``