JSPM

eslint-plugin-json-format

2.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 43426
  • Score
    100M100P100Q153512F
  • License MIT

lint and auto-fix json

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

eslint-plugin-json-format

CircleCI

An ESLint plugin to lint, format, auto-fix, and sort your json files.

Features

  • lint, format, and auto-fix json files (files ending with .json or rc)
  • auto-sort package.json files (default true, 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:

{
  "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 .eslintignore in your project root with these contents: .eslintignore:

# eslint ignores hidden files by default
!.*
**/node_modules

Settings

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 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:

{
  "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

MIT

Credits

large amount of code borrowed from eslint-plugin-html