Package Exports
- eslint-plugin-json-format
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (eslint-plugin-json-format) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Lint, format, and auto-fix your json with eslint
Features
- lint, format, and auto-fix
jsonfiles (files ending with.jsonorrc) - auto-sort
package.jsonfiles (defaulttrue, can be disabled and sorting configured) - ignores
json-with-commentsfiles (default["**/.tsconfig.json", ".vscode/**"]) - ignores certain files by default (default
["**/package-lock.json"])
Installation
You'll first need to install ESLint:
npm i eslint --save-devNext, install eslint-plugin-json-format:
npm install eslint-plugin-json-format --save-devUsage
Add json-format to the plugins section of your .eslintrc configuration file. You can omit the eslint-plugin- prefix:
{
"plugins": [
"json-format"
]
}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,.babelrc), you'll need to modify/create a.eslintignorein your project root with these contents:.eslintignore:
# eslint ignores hidden files by default
!.*Settings
default settings (.eslintrc):
"settings": {
"json/sort-package-json": true,
"json/ignore-files": ["**/package-lock.json"],
"json/json-with-comments-files": ["**/tsconfig.json", ".vscode/**"],
"json/package-json-sort-order": "pro"
}Note: glob patterns use
minimatchagainst pathnames relative to the project root (cwd)
package-json-sort-order
You can configure the exact sort order of your package.json files (or turn it off entirely with the sort-package-json setting)
By default the sort order is "pro" (will change to "standard" in next major version)
Available sorting options
"pro": places scripts and depenedencies at the top, reducing need to scroll down to view them. Pros only.
"standard": default from sort-package-json. This is a sane, standard order.
["your", "custom", "order", "here"]: provide an array to manually set the sort order.
Settings examples
to turn off sort-package-json for example, in your .eslintrc:
{
"plugins": [
"json-format"
],
"settings": {
"json/sort-package-json": false,
}
}to format tsconfig.json (this will strip comments!), in your .eslintrc:
{
"plugins": [
"json-format"
],
"settings": {
"json/json-with-comments-files": [],
}
}change the sort order of package.json:
{
"plugins": [
"json-format"
],
"settings": {
"json/package-json-sort-order": ["license", "dependencies"],
}
}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": [
{
"language": "json",
"autoFix": true
},to auto-format
json-with-comments-files, also add"language": "jsonc"
License
Credits
large amount of code borrowed from eslint-plugin-html