An eslint plugin to lint Yola's javascript.
ES6 code style is based on Airbnb Javascript Style Guide.
Install eslint and plugin package with npm as development dependencies:
npm install --save-dev eslint eslint-plugin-yola
There are two configurations available:
- yola/base - based on
eslint-config-airbnb-base
- used to lint ES6 code - yola/react - based on
eslint-config-airbnb
- used to lint React components code - yola/typescript - based on
@typescript-eslint/eslint-plugin
- used to lint type script code - yola/prettier - an
eslint-config-prettier
to avoid conflicts using prettier
Create config file in the root of your project .eslintrc.js
that extends eslint-plugin-yola
:
module.exports = { extends: 'plugin:yola/base' };
Note: configs are depend on eslint plugins import
, react
, jsx-a11y
. In order to avoid usage conflicts, rules that extracted from these plugins are prefixed with yola/
. So if you need to override some rules you must use prefix. eg override of react/no-string-refs
module.exports = {
extends: 'plugin:yola/react',
rules: {
'yola/react/no-string-refs': 'warn',
},
};
With npm scripts:
"lint": "eslint ./src/**/*.js"
We were using jshint and found it too restrictive. We wanted to extend from other style guides.
Another reason to have eslint is a JSX support.
The plugin solves problem of shareable eslint configs that depend on eslint plugins, which described in eslint/eslint#3458.
Basically, to resolve eslint plugins dependencies this plugin wraps eslint-config-airbnb
, eslint-config-airbnb-base
rules with extracted rules from plugins.
The approach was inspired by eslint-plugin-react-app