WordPress ESLint rules and shared configs.
Switch branches/tags
Nothing to show
Clone or download

README.md

eslint-plugin-wordpress

A collection of custom ESLint rules that help enforce JavaScript coding standard in the WordPress project.

Build Status Coverage Status bitHound Overall Score NPM version

Installation

You'll first need to install ESLint:

$ npm i eslint --save-dev

Next, install eslint-plugin-wordpress:

$ npm install eslint-plugin-wordpress --save-dev

Note: If you installed ESLint globally (using the -g flag) then you must also install eslint-plugin-wordpress globally.

Usage

This plugin exports a recommended config that enforces WordPress JavaScript coding standards.

Note: This config will also add the Backbone, jQuery, JSON, Underscore, and the global wp as allowed globals.

Enable it in your package.json with the extends option:

{
	"name": "my-wordpress-project",
	"eslintConfig": {
		"extends": "plugin:wordpress/recommended",
		"plugins": [
			"wordpress"
		]
	}
}

Or create your own .eslintrc.json configuration file:

{
	"extends": "plugin:wordpress/recommended",
	"plugins": [
		"wordpress"
	]
}

Or create your own .eslintrc.js configuration file:

{
	"extends": "plugin:wordpress/recommended",
	"plugins": [
		"wordpress"
	]
}

Or create your own .eslintrc.yaml or .eslintrc.yml configuration file:

extends:
	- "plugin:wordpress/recommended"

plugins:
	- "wordpress"

See the ESLint docs for more information about configuration file formats.

You can also stack any of the extra shared configs on top of the "recommended" config by extending an array of linting configs. For example, this package provides a Node.js linting config, which can be added to the recommended config with the following configuration file:

{
	"extends": [
		"plugin:wordpress/recommended",
		"plugin:wordpress/node"
	]
}

Available rulesets

The following rulesets are available:

  • esnext: Adds ES6+/ES2015+ features.
  • i18n: Warns about possible internationalization errors.
  • jscs: Imported and merged WordPress and jQuery JSCS preset using https://github.com/brenolf/polyjuice.
  • jsdoc: Requires valid JSDoc
  • jshint: Imported from WordPress .jshintrc using https://github.com/brenolf/polyjuice.
  • node: Contains rules that are relevant in a Node.JS environment.
  • recommended: Enforces best practices, possible errors and the WordPress codestyle.

Resources

Code Sources, References,