Eslint: Difference between revisions

From Bitpost wiki
Line 15: Line 15:
     'es2020': true,
     'es2020': true,
   },
   },
   'extends': ['eslint:recommended', 'google'],
   // this is insane: 'extends': ['eslint:recommended', 'google'],
  'extends': ['google'],
   'parserOptions': {
   'parserOptions': {
     'ecmaVersion': 11,
     'ecmaVersion': 11,

Revision as of 17:44, 2 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...

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