Eslint: Difference between revisions
Line 36: | Line 36: | ||
cd myproject | cd myproject | ||
eslint --init | eslint --init | ||
==== eslint rules ==== | ==== eslint rules ==== | ||
eslint rules are generally ridiculously aggressive, truly for the OCD. But you get used to it, for better or worse. There are some pretty stupid ones, eg: | eslint rules are generally ridiculously aggressive, truly for the OCD. But you get used to it, for better or worse. There are some pretty stupid ones, eg: | ||
* [https://eslint.org/docs/rules/no-mixed-operators No mixed operators]! Durrr... learn to program. | * [https://eslint.org/docs/rules/no-mixed-operators No mixed operators]! Durrr... learn to program. |
Revision as of 22:21, 18 September 2020
Intro
eslint is a Javascript linter and format-enforcer. Love it or die. I'm following Google's rules, with allowance for longer lines. My job uses a very strict set of rules.
Installation
Do NOT USE APT, it is available and seems to work but this is a node module. Don't be stupid, use npm. Note the mind-bogglingly-insane number of dependencies. Node world, you scare me...
- Install eslint node module
# From anywhere... npm install -g eslint # Then from your project... npm install --save-dev eslint-config-google
- Install the eslint vscode extension.
- Configure eslint in one of these ways:
- Run the vscode command EsLint: Create EsLint configuration
- Run the [eslint --init] command from the root of your project
- Copy an .eslintrc.js file from another project into the root of your project.
- Restart the project, and eslint should prompt you to allow it to be enabled.
Configuration
If you have an existing .eslintrc.js that works well in another project, JUST COPY IT to the root of the new vscode folder-based project. Here's a good example:
module.exports = { 'env': { 'browser': true, 'es2020': true, }, // this is insane: 'extends': ['eslint:recommended', 'google'], 'extends': ['google'], 'parserOptions': { 'ecmaVersion': 11, 'sourceType': 'module', }, 'rules': { // MDM they don't call me [Michael 4k] for nothing. I have to save SOME lint dignity. Is this too much to ask? 'max-len': [1, {'code': 120}], }, };
Otherwise, this will step you through it. Use the google format as a baseline:
cd myproject eslint --init
eslint rules
eslint rules are generally ridiculously aggressive, truly for the OCD. But you get used to it, for better or worse. There are some pretty stupid ones, eg:
- No mixed operators! Durrr... learn to program.