@cprussin/transform-package-json v1.4.2
@cprussin/transform-package-json v1.4.2
@cprussin/transform-package-json v1.4.2
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: npm install --save-dev @cprussin/transform-package-json
- pnpm: pnpm add -D @cprussin/transform-package-json
- yarn: yarn add -D @cprussin/transform-package-json
CLI Usage
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 devDependenciesandscriptsfields
- If --removeTypeis paassed, remove thetypefield (for instance, you may want to do this is you're transpiling ESM to CJS)
- Update relative path references so that the new package.jsonpoints 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:
transform-package-json --removeType ./package.json ./dist/package.jsonWhich will convert this package.json:
{
  name: "foo",
  type: "module",
  main: "./dist/index.js",
  types: "./dist/index.d.js",
  exports: {
    import: "./dist/esm/index.mjs",
    require: "./dist/cjs/index.js",
  },
  scripts: {
    foo: "bar",
  },
  devDependencies: {
    baz: "latest",
  },
}into this one:
{
  name: "foo",
  main: "./index.js",
  types: "./index.d.js",
  exports: {
    import: "./esm/index.mjs",
    require: "./cjs/index.js",
  },
}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.