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
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 install 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.json), you'll need to modify/create a.eslintignorein your project root with these contents:.eslintignore:
# eslint ignores hidden files by default
!.*
**/node_modulesSettings
default settings (.eslintrc):
"settings": {
"json/sort-package-json": "standard",
"json/ignore-files": ["**/package-lock.json"],
"json/json-with-comments-files": ["**/tsconfig.json", ".vscode/**"],
}Note: glob patterns use
minimatchagainst 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:
{
"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"(* will strip comments)
License
Credits
large amount of code borrowed from eslint-plugin-html