Eslint

From Bitpost wiki
Revision as of 19:25, 18 September 2020 by M (talk | contribs)

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...

# From anywhere...
npm install -g eslint
# From your project
npm install --save-dev eslint-config-google

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

vscode integration

  • Get the eslint extension
  • Restart vscode and open a project with JS files.
  • An eslint dialog should pop up, click Allow. Should be all you need.

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: