Eslint 可以用 monorepo 指定子包下的配置吗

Posted

技术标签:

【中文标题】Eslint 可以用 monorepo 指定子包下的配置吗【英文标题】:Can Eslint specify configuration under child package with monorepo 【发布时间】:2022-01-14 17:35:55 【问题描述】:

.eslintrc.json
│   ├── app1
│   └── app2
│       ├── .eslintrc.json

在 app2 子包下运行此命令。

./node_modules/eslint/bin/eslint.js ./src/ --config .eslintrc.json

并显示此错误...

Oops! Something went wrong! :(

ESLint: 8.4.1

ESLint couldn't determine the plugin "@typescript-eslint" uniquely.

- @typescript-eslint/eslint-plugin/dist/index.js (loaded in "../../.eslintrc.json )...

为什么 ESlint 仍然尝试访问根文件夹中的 ../../.eslintrc.json?

【问题讨论】:

【参考方案1】:

来自the documentation(强调我的):

第一种使用配置文件的方法是通过.eslintrc.*package.json 文件。 ESLint 会自动在要检查的文件的目录中查找它们,在连续的父目录中一直到文件系统的根目录(除非指定了root: true)。 p>

因此,ESLint 访问位于父文件夹中的“.eslintrc.json”文件的原因仅仅是因为这是默认行为。如果未另行指定,“.eslintrc.*”文件将从其祖先文件夹中的其他“.eslintrc.*”文件继承其设置。

为防止这种行为,请在“app2”内的“.eslintrc.json”文件中设置"root": true,ESLint 将不再尝试访问“../../.eslintrc.json”或任何其他配置目录结构中的文件。

【讨论】:

以上是关于Eslint 可以用 monorepo 指定子包下的配置吗的主要内容,如果未能解决你的问题,请参考以下文章

monorepo Yarn 工作区 - 共享 esLint 和 Prettier 配置

指定子设备号创建字符设备

Jquery 字符串中判断是不是包含指定子串

未指定子数组的数量时如何在C中创建数组数组? [复制]

jQuery实现的删除指定子元素代码实例

MIME 类型是不是需要指定子类型