1.4.0 • Published 1 year ago

@schuijers/eslint-config v1.4.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

@schuijers/eslint-config GitHub Build Status npm MIT License

My shareable ESLint configs.

Installation

# npm
npm install --save-dev @schuijers/eslint-config

# yarn
yarn add --dev @schuijers/eslint-config

# pnpm
pnpm add --save-dev @schuijers/eslint-config

This library has a required peerDependencies listing for eslint.

Usage

Reference @schuijers/eslint-config in your .eslintrc.js.

module.exports = {
  extends: '@schuijers/eslint-config',
  rules: {
    // your overrides
  },
}

Or, you can use it in other ways as described in the official documentation.

Other configs

Besides the base config (for JavaScript and TypeScript) this package also exposes some additional configs:

Config nameDescription
promiseAdditional rules for projects that use promises
vueAdditional rules for projects that use Vue
nuxtAdditional rules for projects that use Nuxt (this config extends the vue config above)
jestAdditional rules for projects that use Jest (with or without the Testing Library)
cypressAdditional rules for projects that use Cypress

You can use them standalone:

module.exports = {
  extends: '@schuijers/eslint-config/<config-name>',
}

Or in combination with the base config (recommended):

module.exports = {
  extends: [
    '@schuijers/eslint-config',
    '@schuijers/eslint-config/<config-name>',
  ],
}

Configuring aliases

When using aliases like @ or ~ in your project, you might run into import/no-unresolved errors when using this config. You can fix these errors by configuring the eslint-import-resolver-alias plugin (provided as a dependency by this package) through your ESLint config.

For example:

module.exports = {
  ...
  settings: {
    'import/resolver': {
      alias: {
        extensions: ['.js', '.vue'],
        map: [
          ['@', './src'],
          ['~', './src'],
        ],
      },
    },
  },
}

In this example, @ and ~ will be mapped to the /src folder for .js and .vue and files.

TypeScript

When using TypeScript and

  • a tsconfig that is not located in the root of your project, or
  • multiple tsconfigs (useful for monorepos)

you will need to configure the eslint-import-resolver-typescript plugin (provided as a dependency) through your ESLint config:

module.exports = {
  ...
  settings: {
    'import/resolver': {
      typescript: {
        // use <root>/path/to/folder/tsconfig.json
        "project": "path/to/folder",

        // Multiple tsconfigs

        // use a glob pattern
        "project": "packages/*/tsconfig.json",

        // use an array
        "project": [
          "packages/module-a/tsconfig.json",
          "packages/module-b/tsconfig.json"
        ],

        // use an array of glob patterns
        "project": [
          "packages/*/tsconfig.json",
          "other-packages/*/tsconfig.json"
        ]
      },
  },
}

License

MIT © Martijn Schuijers