Skip to content

tjw-lint/eslint-config-tjw-base

Repository files navigation

eslint-config-tjw-base

The Jared Wilcurt's base ESLint 9+ rules for ESM projects.

For CJS and ESLint < v9, use v2.x releases.

Using this

  1. If you don't have a package.json do npm init -y first
  2. Run npm pkg set type=module
  3. Run npm install --save-dev eslint eslint-config-tjw-base @stylistic/eslint-plugin-js
  4. In your eslint.config.js add tjwBase to your config like so:
    import js from '@eslint/js';
    import tjwBase from 'eslint-config-tjw-base';
    
    export default [
      js.configs.recommended,
      tjwBase,
      {
        // project specific settings
      }
    ];
  5. Run npm pkg set scripts.lint="eslint *.js src"
    • Change *.js src to your files and folders you want to be linted
  6. Run npm run lint

If you already have a no-restricted-syntax rule, you can merge the ones that come with this config with your own, like so:

// eslint.config.js
import js from '@eslint/js';
import baseRestrictedSyntax from 'eslint-config-tjw-base/no-restricted-syntax.js';
import tjwBase from 'eslint-config-tjw-base';

export default [
  js.configs.recommended,
  tjwBase,
  {
    rules: {
      'no-restricted-syntax': [
        'error',
        ...baseRestrictedSyntax,
        // your custom rules
      ]
    }
  }
];

See also: