使用 Yarn 工作区为 monorepo 配置 tsconfig.json 和 eslint

cbd*_*per 10 typescript reactjs eslint tsconfig yarn-workspaces

我在 TypeScript React 项目中使用 Yarn 工作区 monorepo 结构:

packages
  admin
    package.json
  user
    package.json
package.json // Workspace Root. Sets "workspaces": ["packages/*"]
Run Code Online (Sandbox Code Playgroud)

我正在努力设置eslintTypeScript。

这是我当前的.eslintrc.json文件:

在此输入图像描述

但我不太确定我需要多少个文件.eslintrctsconfig.json

选项1

每个包都会处理自己的.eslintrc.jsontypescript.json

packages/
  admin/
    package.json
    .eslintrc.json
    tsconfig.json
  user/
    package.json
    .eslintrc.json
    tsconfig.json

package.json
Run Code Online (Sandbox Code Playgroud)

选项#2

拥有根级别.eslintrc.json,并且tsconfig.json只需对内部包进行一些扩展和覆盖(如果需要)。

packages/
  admin/
    package.json
    .eslintrc.json  // Some extends/overrides
    tsconfig.json   // Some extends/overrides
  user/
    package.json
    .eslintrc.json  // Some extends/overrides
    tsconfig.json   // Some extends/overrides

package.json
.eslintrc.json
tsconfig.json
Run Code Online (Sandbox Code Playgroud)

我应该遵循这 2 个选项中的哪一个?如果我选择选项 2,我是否需要针对该级别进行任何 .eslintrc.json特殊tsconfig.json配置root

Cri*_*n G 0

我更喜欢第二种方法,但不要忘记提及包中的扩展部分.eslintrc.json

.eslintrc.json

{
  "root": true,
  ...
}
Run Code Online (Sandbox Code Playgroud)

包裹.eslintrc.json

{
  "extends": [
    "../../.eslintrc.json" 
  ]
}
Run Code Online (Sandbox Code Playgroud)