1.1.8 • Published 10 months ago

@bedrockio/eslint-plugin v1.1.8

Weekly downloads
-
License
MIT
Repository
-
Last release
10 months ago

@bedrockio/eslint-plugin

Common ESLint plugin for Bedrock projects. Note that this package uses flat config new to ESLint v9.

Install

Install both ESLint and this plugin:

$ npm install eslint @bedrockio/eslint-plugin --save-dev

Usage

You can now use the exported modules in a flat ESLint config:

import { recommended, react, jest } from '@bedrockio/eslint-plugin';

export default [
  jest,
  react,
  recommended,
  {
    // In most cases this won't be needed, however
    // note that to scope rules to different files,
    // configs will overwrite each other unless exported
    // as an array so need to deep merge them together.
    files: ['src/**/*.js'],
    languageOptions: {
      // Custom language options like babel transforms
      // etc. Note that the exported react plugin is
      // already set up to parse JSX. This complex
      // setup is only if you have mixed environments
      // in the same project.
    },
    plugins: {
      ...react.plugins,
      ...recommended.plugins,
    },
    settings: {
      ...react.settings,
      ...recommended.settings,
    },
    rules: {
      ...react.rules,
      ...recommended.rules,
    },
  },
];

VSCode

Although not part of linting, getting intellisense in VSCode to work properly in a project is a pain. To make it work nicely add this to your project:

// jsconfig.json
{
  "compilerOptions": {
    // - import from "../../components"
    // + import from "components"
    "baseUrl": "./src",
    // Support JSX if needed
    "jsx": "react-jsx",
    "checkJs": false,
    // Makes package imports behave better.
    "module": "nodenext",
    // Helps with some commonjs modules.
    "allowSyntheticDefaultImports": true
  },
  // Skip parsing useless files.
  "exclude": ["dist", "build", "node_modules"]
}

Another annoyance is module resolution for specific packages (specifically lodash and react-router):

// You can simply import "react-router-dom"
// but the intellisense isn't aware of this.
import { Link } from 'react-router-dom/cjs/react-router-dom.min';

To fix these kind of errors simply import the appropriate types:

npm install --save-dev @types/lodash
npm install --save-dev @types/react-router-dom
# ...etc
1.1.1

10 months ago

1.1.0

10 months ago

1.1.8

10 months ago

1.1.7

10 months ago

1.1.6

10 months ago

1.1.5

10 months ago

1.1.4

10 months ago

1.1.3

10 months ago

1.1.2

10 months ago

1.0.0

2 years ago