npm install --save-dev eslint-config-wikimedia
Then, configure ESLint with one or more .eslintrc.json
files as appropriate.
Bellow are some potential recommended uses:
This profile allows ES5 code and browser native functions. It will complain about ES6+ code and language features.
.eslintrc.json
:
{
"extends": "wikimedia/client"
}
This profile adds the jQuery $
global, and additional rules preventing the use of jQuery features that have ES5 alternatives.
.eslintrc.json
:
{
"extends": [
"wikimedia/client",
"wikimedia/jquery"
]
}
You can extend the above profile by also adding a second .eslintrc.json
file in your tests directory:
tests/qunit/.eslintrc.json
:
{
"extends": [
"wikimedia/qunit",
"../../.eslintrc.json"
]
}
This profile allows ES6 code and node native functions (i.e., Node 6.x). It will complain about ES2015+ code and language features.
.eslintrc.json
:
{
"extends": "wikimedia/server"
}
Please note that the basic project configuration does not specify any language or environmental defaults, and is unlikely to be suitable. However, if you wish to target clients with ES3 language support, or earlier versions of Node, this is a good place from which to start.
.eslintrc.json
:
{
"extends": "wikimedia"
}
Major changes should be discussed on mediawiki.org or on the Wikitech mailing list beforehand.
Same approach as in ESLint, see https://github.com/eslint/eslint#user-content-semantic-versioning-policy.