Difference between revisions of "Eslint"

From Bitpost wiki
Jump to navigation Jump to search
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.