2.0.1 • Published 6 years ago

eslint-plugin-json-format v2.0.1

Weekly downloads
20,484
License
MIT
Repository
github
Last release
6 years ago

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

@markmctamney/eslint-config-markmctamney@ndpnt/open-terms-archiveopen-terms-archive@infinitebrahmanuniverse/nolb-eslint-plugin-j@everything-registry/sub-chunk-1612eslint-plugin-jhlint@doctarigroup/eslint-config@doctarigroup/eslint-config-react@doctarigroup/eslint-config-typescript@doctarigroup/eslint-config-typescript-react@developer-kit/eslint-config@boennemann/eslint-config@youngseokangg/common-bundle@andrmoel/eslint-config@andrmoel/eslint-config-react@andrmoel/eslint-config-typescript@al/eslint-config-alertlogic@agds/eslint-config-js@bosscard/eslint-config@olennis/eslint-plugin@dword-design/eslint-config@foxsocial/eslint-config@fesk/eslint-config-standard@frontendlive/eslint-config@frostbitecms/eslint-config@germinal-io/eslint-config@koober/eslint-config@lskjs/eslint-config@lsk4/eslint-config@lego/eslint-config@leye195/eslint-config-base@leye195/eslint-config-base-test@irvin93d/eslint-config-next@luma-dev/eslint-config-base@markmctamney/eslint-config@newhighsco/eslint-config@newlevelup/eslint-config@mattietea/eslint-config@mikey-pro/eslint-config-mkt@mikey-pro/eslint-config-preact@jongh/eslint-plugin@joyofrepo/eslint-config@jetrockets/eslint-config-base@junghyeonsu/eslint-config-base@junghyeonsu/eslint-plugin@pixelperf/eslint-config@opentermsarchive/engine@slick_kilmister/node-dev-config@sonny-fe/eslint-config-base@sonny-fe/eslint-plugin@spark-dist/eslint-config-base@secretflow/eslint-config@squares/eslint-plugin@stackflow/eslint-config@websummit/codestyle@websummit/eslint-config@websummit/eslint-config-codestyle@webpuppy/eslint-config@webpuppy/eslint-config-base@wonse/eslint-plugin@tripteki/eslint-config@tsofist/web-buddy@youngseo-kangg/eslint-plugineslint-config-meienberger-react-typescripteslint-config-re-taroeslint-config-tonyfromundefinedeslint-config-vaviloneslint-config-jhlinteslint-config-tuxsncteslint-config-firstbloodeslint-config-fabulatoreslint-config-dsklineeslint-config-seulgiryuhun2
2.0.1

6 years ago

2.0.0

6 years ago

1.2.0

6 years ago

1.1.0

6 years ago