JSPM

  • Created
  • Published
  • Downloads 103706
  • Score
    100M100P100Q151904F
  • License MIT

Rules for consistent, readable, and valid package.json files. πŸ—‚οΈ

Package Exports

  • eslint-plugin-package-json

Readme

eslint-plugin-package-json

Rules for consistent, readable, and valid package.json files. πŸ—‚οΈ

All Contributors: 13 πŸ‘ͺ Codecov Test Coverage Contributor Covenant License: MIT Style: Prettier TypeScript: Strict npm package version

Installation

This package requires ESLint 8 and jsonc-eslint-parser:

npm install eslint eslint-plugin-package-json jsonc-eslint-parser --save-dev

Usage

Add an override to your ESLint configuration file that specifies this plugin, jsonc-eslint-parser, and its recommended rules for your package.json file:

module.exports = {
    overrides: [
        {
            extends: ["plugin:package-json/recommended"],
            files: ["package.json"],
            parser: "jsonc-eslint-parser",
            plugins: ["package-json"],
        },
    ],
};

You may also want to individually configure rules. See ESLint's Configure Rules guide for details on how to customize your rules.

module.exports = {
    overrides: [
        {
            extends: ["plugin:package-json/recommended"],
            files: ["package.json"],
            parser: "jsonc-eslint-parser",
            plugins: ["package-json"],
            rules: {
                "package-json/valid-package-def": "error",
            },
        },
    ],
};

Supported Rules

πŸ’Ό Configurations enabled in.
βœ… Set in the recommended configuration.
πŸ”§ Automatically fixable by the --fix CLI option.

Name Description πŸ’Ό πŸ”§
order-properties Package properties must be declared in standard order βœ… πŸ”§
prefer-repository-shorthand Enforce shorthand declaration for GitHub repository. βœ… πŸ”§
sort-collections Dependencies, scripts, and configuration values must be declared in alphabetical order. βœ… πŸ”§
valid-local-dependency Checks existence of local dependencies in the package.json βœ…
valid-package-def Enforce that package.json has all properties required by the npm spec βœ…

These rules only run on package.json files; they will ignore all other files being linted. They lint package.json files at project root, and in any subfolder of the project, making this plugin great for monorepos.

Contributors

Andreas Lindberg
Andreas Lindberg

πŸ›
Anton Khitrenovich
Anton Khitrenovich

πŸ€”
Azat S.
Azat S.

πŸ€” πŸ’»
James
James

πŸ’»
James Zetlen
James Zetlen

πŸ’» πŸ› πŸ“– πŸš‡ 🚧 πŸ”§
JesΓΊs LeganΓ©s-Combarro
JesΓΊs LeganΓ©s-Combarro

πŸ’»
Josh Goldberg ✨
Josh Goldberg ✨

πŸ”§ πŸ› πŸ’» πŸš‡ πŸ“– 🚧 πŸ€”
Kendall Gassner
Kendall Gassner

πŸ’» 🚧
Kristjan ESPERANTO
Kristjan ESPERANTO

πŸ€” πŸ›
Nick Schonning
Nick Schonning

πŸ’»
Stephen
Stephen

πŸ’»
Yosuke Ota
Yosuke Ota

πŸ› πŸ’»
b3rnhard
b3rnhard

πŸ›

Appreciation

Many thanks to @zetlen for creating the initial version and core infrastructure of this package! πŸ’–

πŸ’™ This package was templated with create-typescript-app.