Features
- lint, format, and auto-fix
json
files (files ending with.json
orrc
) - auto-sort
package.json
files (defaulttrue
, can be disabled and sorting configured) - ignores
json-with-comments
files (default["**/.tsconfig.json", ".vscode/**"]
) - ignores certain files by default (default
["**/package-lock.json"]
)
Installation
You'll first need to install ESLint:
npm install eslint --save-dev
Next, install eslint-plugin-json-format
:
npm install eslint-plugin-json-format --save-dev
Usage
Add json-format
to the plugins section of your .eslintrc
configuration file. You can omit the eslint-plugin-
prefix:
cli example:
# lint entire poject for js and various json files eslint --ext .js,.json,.eslintrc,.babelrc --fix .
Note: In order to lint hidden files (e.g.
.eslintrc.json
), you'll need to modify/create a.eslintignore
in your project root with these contents:.eslintignore
:
# eslint ignores hidden files by default!.***/node_modules
Settings
.eslintrc
):
default settings ("settings":
Note: glob patterns use
minimatch
against path names relative to the project root (cwd)
sort-package-json
order
You can configure the exact sort order of your package.json
files (or turn it off entirely with false
)
Available sorting options
false: disable package.json
sorting.
"standard": default from sort-package-json
. This is a sane, standard order.
"pro": places scripts and dependencies at the top, reducing need to scroll down to view them. Pros only.
["your", "custom", "order", "here"]: provide an array to manually set the sort order.
Settings examples
to turn off sorting package.json
files for example, in your .eslintrc
:
to format tsconfig.json
(this will strip comments!), in your .eslintrc
:
change the sort order of package.json
:
Editor Configuration
VSCode:
In order for editor integration via the vscode-eslint
extension, you'll need to enable linting json
files.
settings.json
:
// enable eslint fix-on-save "eslint.autoFixOnSave": true, "eslint.validate":
to auto-format*
json-with-comments-files
, also add"language": "jsonc"
(* will strip comments)
License
Credits
large amount of code borrowed from eslint-plugin-html