Skip to content

Latest commit

 

History

History
121 lines (101 loc) · 3.25 KB

README.md

File metadata and controls

121 lines (101 loc) · 3.25 KB

clean-pkg-json

Script to remove unnecessary properties from package.json on prepublish hook.

Support this project by ⭐️ starring and sharing it. Follow me to see what other cool projects I'm working on! ❤️

Why?

package.json is primarily for declaring an npm package and describing how it can be consumed.

However, it can often get bloated with development concerns such as devDependencies and configuration like eslintConfig, prettier, lint-staged, simple-git-hooks, etc.

Use clean-pkg-json in a prepublish hook to remove unnecessary properties from package.json. Useful in micropackages where every byte matters.

Install

npm install --save-dev clean-pkg-json

Usage

Add clean-pkg-json to the prepack hook, which runs before npm publish and npm pack.

// package.json
{
    "name": "my-package",
    // ...
    "scripts": {
        // ...
        "prepack": "clean-pkg-json"
    }
}

Flags

Flag Description
-k, --keep <property name> Property names to keep. Accepts multiple flags or a comma-delimited list.
-v, --verbose Verbose logs.
-d, --dry Dry run mode. Instead of writing to disk, it will log it.
-h, --help Show help
--version Show version

Default preserved properties

By default, these properties are preserved in package.json:

  • name
  • version
  • private
  • publishConfig
  • scripts.preinstall
  • scripts.install
  • scripts.postinstall
  • scripts.dependencies
  • files
  • bin
  • browser
  • main
  • man
  • dependencies
  • peerDependencies
  • peerDependenciesMeta
  • bundledDependencies
  • optionalDependencies
  • engines
  • os
  • cpu
  • description
  • keywords
  • author
  • contributors
  • license
  • homepage
  • repository
  • bugs
  • funding

CDNs

  • type
  • exports
  • imports
  • sponsor
  • publisher
  • displayName
  • categories
  • galleryBanner
  • preview
  • contributes
  • activationEvents
  • badges
  • markdown
  • qna
  • sponsor
  • extensionPack
  • extensionDependencies
  • extensionKind
  • icon
  • fesm2020
  • fesm2015
  • esm2020
  • es2020
  • types
  • typings
  • typesVersions

Bundlers (Webpack, Rollup, esbuild)