@schuijers/eslint-config

1.4.0 • Public • Published

@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 name Description
promise Additional rules for projects that use promises
vue Additional rules for projects that use Vue
nuxt Additional rules for projects that use Nuxt (this config extends the vue config above)
jest Additional rules for projects that use Jest (with or without the Testing Library)
cypress Additional 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

Package Sidebar

Install

npm i @schuijers/eslint-config

Weekly Downloads

0

Version

1.4.0

License

MIT

Unpacked Size

156 kB

Total Files

10

Last publish

Collaborators

  • schuijers