This package contains a CLI and an API for transforming a package.json into a
new location while patching relative paths and removing development-only
fields.
The CLI takes a path to an input package.json and a path to an output
package.json. It will then run the following transformations on the input,
saving the result to the output path:
Remove the devDependencies and scripts fields
If --removeType is paassed, remove the type field (for instance, you
may want to do this is you're transpiling ESM to CJS)
Update relative path references so that the new package.json points to
the same files as the old one. Fields that are updated are:
You can use transformPackageJson with an input path, output path, and
optional Options as a javascript equivalent to the CLI.
Alternatively, if you have a non-standard use case for loading/writing files,
you can call transformPackageJsonContents, which takes the parsed
contents of a package.json and an optional Options and returns the
transformed contents.
This package contains a CLI and an API for transforming a package.json into a new location while patching relative paths and removing development-only fields.
Installing
Use the package manager of your choice to install:
npm install --save-dev @cprussin/transform-package-json
pnpm add -D @cprussin/transform-package-json
yarn add -D @cprussin/transform-package-json
CLI Usage
The CLI takes a path to an input
package.json
and a path to an outputpackage.json
. It will then run the following transformations on the input, saving the result to the output path:devDependencies
andscripts
fields--removeType
is paassed, remove thetype
field (for instance, you may want to do this is you're transpiling ESM to CJS)package.json
points to the same files as the old one. Fields that are updated are:main
types
bin
exports
For example, you can use the CLI by calling:
Which will convert this
package.json
:into this one:
API Usage
You can use transformPackageJson with an input path, output path, and optional Options as a javascript equivalent to the CLI. Alternatively, if you have a non-standard use case for loading/writing files, you can call transformPackageJsonContents, which takes the parsed contents of a
package.json
and an optional Options and returns the transformed contents.