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 指定子包下的配置吗的主要内容,如果未能解决你的问题,请参考以下文章