5.3.0 • Published 1 month ago

@darcytech/eslint-config-darcytech v5.3.0

Weekly downloads
-
License
MIT
Repository
-
Last release
1 month ago

@darcytech/eslint-config-darcytech

简介

整理 eslint 的通用配置, 支持 Typescript 、React

注意

ESLint8 要求 node 版本 ^12.22.0, ^14.17.0, or >=16.0.0

安装

npm install --save-dev @darcytech/eslint-config-darcytech eslint prettier jest

用法

module.exports = {
  root: true,
  extends: ['@darytech/darcytech'],
  parserOptions: {
    project: "./tsconfig.json"
  }
};

常见问题

请看这个链接

how to silence warnings about ignored files in eslint

type-aware linting

Error: Error while loading rule '@typescript-eslint/dot-notation': You have used a rule which requires parserServices to be generated. You must therefore provide a value for the "parserOptions.project" property for @typescript-eslint/parser.

原因是:依赖库 eslint-config-airbnb-typescript 中开启了一些被称之为 type-aware 的 typescript eslint 规则。这类规则需要额外的配置,以获取项目代码的 ts 类型,进行规则的校验。

虽然 @darcytech/eslint-config-darcytech 已经帮忙禁用了一些 type-aware 的 typescript eslint 规则,但难免会因为依赖的更新而出现新的 type-aware 规则没有禁用。

另外,type-aware linting 会影响开发过程中的 eslint 性能,因为它需要获取整个项目的 ts 类型,相当于使用时需要利用 tsc 构建一次项目。

使用中,若仍然出现以上类似问题,请禁用该 typescript-eslint 规则,同时开启对应的 eslint 规则(如果有的话)。

例如:

module.exports = {
    root: true,
    extends: [
      "@darcytech/eslint-config-darcytech"
    ],
    rules: {
      "dot-notation": 2,
      "@typescript-eslint/dot-notation": 0
    }
}

如果你一定要使用 type-aware linting, 可以这么配置:

module.exports = {
    root: true,
    extends: [
      "@darcytech/eslint-config-darcytech"
    ],
    parserOptions: {
      tsconfigRootDir: __dirname,
       project: ['./tsconfig.json'],
    }
}