eslint configurations for linting of all Zanata's JavaScript code.
These are all based on JavaScript Standard Style.
Install this config and its dependencies:
npm install eslint eslint-config-zanata \
eslint-config-standard \
eslint-config-standard-react \
eslint-config-standard-jsx \
eslint-plugin-react \
eslint-plugin-promise \
babel-eslint
Why all the dependencies? The dependencies must be directly in the project because eslint will not locate them if they are nested within a shareable config.
then have your config extend it:
# .eslintrc (yaml)
extends: zanata
// .eslintrc (json)
{
"extends": "zanata"
}
You can extend zanata
, zanata/react
or zanata/angular
, then add any of
your own rules you need. See http://eslint.org/docs/user-guide/configuring.html
For projects in the Zanata organization, you should prefer requesting rules to be added to these configs rather than adding custom rules per-project. This is so that the style stays consistent between all our projects.
Use SublimeLinter with its eslint plugin:
- install SublimeLinter
- ensure eslint is installed according to the SublimeLinter-eslint instructions
- install SublimeLinter-eslint
When you have followed the configuration instrcutions for SublimeLinter-eslint, it should automatically locate .eslintrc files and lint files that you edit.
Use the builtin WebStorm ESLint tool
Use gulp-eslint
npm install gulp-eslint --save-dev
If you use eslint()
with no arguments, it will resolve .eslintrc
relative to
each file. To specify a config, supply it as a relative path.
e.g. eslint('./.eslintrc')
Use eslint-loader:
npm install eslint-loader --save-dev
The base config. Like standardjs.com but with extra restrictions for line length, only unix line endings, and restrictions on logging and use of undefined variables.
{
"extends": "zanata"
}
Adds babel parser and JSX support, and any react-specific checks that the team have decided to use.
{
"extends": "zanata/react"
}
Just adds angular as a global.
{
"extends": "zanata/angular"
}