@cprussin
    Preparing search index...

    Module @cprussin/transform-package-json - v2.0.0

    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 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:
      • 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.

    Type Aliases

    Options
    PackageJson

    Functions

    transformPackageJson
    transformPackageJsonContents