- Notifications
You must be signed in to change notification settings - Fork0
Rules for consistent, readable, and valid package.json files. 🗂️
License
chandu/eslint-plugin-package-json
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Rules for consistent, readable, and valid package.json files. 🗂️
This package requiresESLint 8 andjsonc-eslint-parser
:
npm install eslint eslint-plugin-package-json jsonc-eslint-parser --save-dev
This plugin's recommended configuration enables its rules on**/package.json
files, parsing them withjsonc-eslint-parser
:
In your ESLint configuration file:
importpackageJsonfrom"eslint-plugin-package-json/configs/recommended";exportdefault[// your other ESLint configurationspackageJson,];
If you want to override the recommended rules:
importpackageJsonfrom"eslint-plugin-package-json/configs/recommended";exportdefault[// your other ESLint configurations{...packageJson,rules:{...packageJson.rules,"package-json/valid-package-def":"off",},},];
SeeESLint'sConfiguration Files guide for details on how to customize your rules and other config settings.
Add an override to your ESLint configuration file that specifies this plugin,jsonc-eslint-parser
, and its recommended rules for yourpackage.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.SeeESLint'sConfigure 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",},},],};
prettier-plugin-packagejson
is aPrettier plugin that enforces the samepackage.json
keys ordering as theorder-properties
andsort-collections rules with default options.We recommend using both the Prettier plugin andeslint-plugin-package-json
's recommended configuration.The default settings don't conflict, and Prettier plugins can quickly fix up ordering in your editor on save and/or as a Git hook.
💼 Configurations enabled in.
✅ Set in therecommended
configuration.
🔧 Automatically fixable by the--fix
CLI option.
💡 Manually fixable byeditor suggestions.
Name | Description | 💼 | 🔧 | 💡 |
---|---|---|---|---|
order-properties | Package properties must be declared in standard order | ✅ | 🔧 | |
repository-shorthand | Enforce either object or shorthand declaration for repository. | ✅ | 🔧 | |
sort-collections | Dependencies, scripts, and configuration values must be declared in alphabetical order. | ✅ | 🔧 | |
unique-dependencies | Enforce that if repository directory is specified, it matches the path to the package.json file | ✅ | 💡 | |
valid-local-dependency | Checks existence of local dependencies in the package.json | ✅ | ||
valid-name | Enforce that package names are valid npm package names | ✅ | ||
valid-package-def | Enforce that package.json has all properties required by the npm spec | ✅ | ||
valid-repository-directory | Enforce that if repository directory is specified, it matches the path to the package.json file | ✅ | 💡 | |
valid-version | Enforce that package versions are valid semver specifiers | ✅ |
These rules only run onpackage.json
files; they will ignore all other files being linted.They can lintpackage.json
files at project root and in any subfolder of the project, making this plugin great for monorepos.
Many thanks to@zetlen for creating the initial version and core infrastructure of this package! 💖
💙 This package was templated withcreate-typescript-app.
About
Rules for consistent, readable, and valid package.json files. 🗂️
Resources
License
Code of conduct
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Languages
- TypeScript92.2%
- JavaScript7.7%
- Shell0.1%