@cprussin/transform-package-json
v1.3.1
Published
A tool to help generate a package.json for publishing.
Downloads
3
Readme
@cprussin/transform-package-json v1.3.1 • Docs
@cprussin/transform-package-json v1.3.1
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
devDependencies
andscripts
fields - If
--removeType
is paassed, remove thetype
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:main
types
bin
exports
For example, you can use the CLI by calling:
transform-package-json --removeType ./package.json ./dist/package.json
Which 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.