ESLint shareable config Vast's JavaScript coding standards
This config can be used for linting server-side and client-side JavaScript.
If you are using React, extend this config with eslint-config-vast-react to add support for React's specific JSX syntax, and to add additional checks for React, JSX, and accessibility.
npm install eslint-config-vast --save-dev
For Node.js environment (ES6):
Create .eslintrc
file in the root of your project with the following settings:
{
"extends": "eslint-config-vast",
"rules": {
// Your overrides...
}
}
For browser environment with ES6/ES7/ES8 to ES5 transpiler:
Create an additional .eslintrc
file in a client-side code folder (e.g. client/.eslintrc
) with the following settings:
{
"env": {
"browser": true
},
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 8
},
"globals": {
"GLOBAL1": false,
"GLOBAL2": false
}
}
For browser environment without ES6/ES7/ES8 to ES5 transpiler:
Create an additional .eslintrc
file in a client-side code folder (e.g. client/.eslintrc
) with the following settings:
{
"env": {
"browser": true,
"es6": false
},
"globals": {
"GLOBAL1": false,
"GLOBAL2": false
},
"rules": {
// Disable es6-related rules for es5 environment
"object-shorthand": 0,
"prefer-arrow-callback": 0,
"prefer-template": 0,
"prefer-spread": 0,
"prefer-rest-params": 0
}
}
If you haven’t already set up ESLint on your project, run:
npm install eslint --save-dev
Add scripts to package.json
(remember to change paths):
"scripts": {
"lint:js": "eslint app tests *.js --ext .js --ext .jsx --ignore-pattern 'js/vendor'",
"lint:js:fix": "npm run eslint -- --fix",
}
Run npm run lint:js
to lint the code.
Run npm run lint:js:fix
to automatically fix as many issues as possible. Another way to autoformat the code is with the editor plugin, such as ESLint-Formatter for Sublime Text.
To add a Git pre-commit hook for ESLint, run:
npm install pre-commit --save-dev
...and add this to package.json
:
"pre-commit": [
"eslint"
]
Tip: For real-time linting in your text editor, see ESLint integrations for editors. In order to use this config in editor, you'll have to install ESLint and all dependencies globally (with -g
flag).
Tip: You can create a personal configuration file in your home directory (~/.eslintrc
), it will only be used if no other configuration files are found. See Configuration Cascading and Hierarchy.
- eslint-config-vast-react for React
- eslint-config-standard for JavaScript Standard Style Guide
- eslint-config-airbnb-base for Airbnb JavaScript Style Guide
- eslint-config-xo for XO ESLint-based linter
MIT © 2016 Vast.com, Inc.