You can find this repo on NPM and you should use NPM to install it.
Only clone this repo if you want to contribute.
Installation
npm install --save-dev eslint-config-takeaway eslint
and create a file called .eslintrc.yaml
in the root of the project folder with these contents:
extends: "takeaway"
You now have a locally installed eslint
in node_modules/.bin/
.
It can be run with ./node_modules/.bin/eslint
or add it to your PATH like this:
PATH=$PATH:./node_modules/.bin/
and then you can just run the eslint
command in your project folder.
Note that a globally installed eslint will not work because it won't find the config module. Also installing global modules is very unsafe.
Running linter
You can run the linter with eslint -c .eslintrc.yaml .
Check ESLint documentation for more information.
IDE integration
Atom
Install the linter-eslint
plugin. It should work without any change in configuration.
Other
IDE missing? Contributions are welcomed.
Precommit hook
Install the pre-commit NPM package: npm install --save-dev pre-commit
which sets up hooks automatically.
Update your package.json to include these changes:
"scripts": {
"lint-js": "LIST=`git diff-index --name-only HEAD | grep \\.js$`; if [ \"$LIST\" ]; then node node_modules/eslint/bin/eslint.js -c .eslintrc.yaml $LIST; fi"
},
"pre-commit": [
"lint-js"
],
ESLint should now run before every commit and automatically lint .js files.
Rules
Rules are based on a combination of StandardJS and this ES6 addition.
Our rules are slightly different in the following points:
Major points
- Line length: 120 characters
- No semicolons
- 2 space indentation
- Use single quotes
Minor points
- Each variable should have its own keyword. (So no
const foo, bar
) - No short-hand operators like
n++
or n+=1
should be used. Use n = n + 1
instead. For loops are the exception, so for (let i = 0; i < 10; i++)
is still allowed. else / elseif
must be placed after the previous closing bracket on the same line.