是否可以忽略某些但不是所有父目录中的 ESLint 配置文件?
Is it possible to ignore ESLint configuration files in certain, but not all, parent directories?
根据ESLint documentation,当ESLint为运行时,它会在当前目录和包括根目录在内的所有父目录中搜索配置文件(/
) 、主目录或在 ESLint 配置文件中指定 root: true
选项的目录。
是否可以将 ESLint 配置为检查某些父目录中的 ESLint 配置文件,而不是其他目录?
为了使事情更具体,以我目前正在从事的基于 Drupal 9 的项目为例。项目树具有以下一般形状:
.
├── .eslintrc.js
├── node_modules
├── package-lock.json
├── package.json
└── web
├── .eslintrc.json
└── modules
└── custom
└── some_module
├── .eslintrc.js
├── node_modules
├── package-lock.json
└── package.json
如您所见,该项目在存储库的根目录下有一个 ESLint 配置文件,和许多项目一样,但在 some_module 特定于该模块的设置目录。
到目前为止一切顺利。但是,Drupal 9 还在 web 目录中分发了自己的内部 ESLint 配置文件。如果我在 Drupal 核心上工作,该配置文件会很有帮助,但我不是。尽管如此,它存在于我真正关心的两个 ESLint 配置文件之间会干扰我想要的 ESLint 配置,并且实际上会导致从存储库根目录调用 ESLint 失败。
是否可以配置ESLint读取some_module/.eslintrc.js配置文件和.eslintrc.js配置文件在版本库的根目录,但是忽略中间的web/.eslintrc.json?
经过一番研究和思考,我意识到extends
关键字可以帮助解决这个问题。我最终将以下内容添加到 some_module/.eslintrc.js 配置文件中:
module.exports = {
// Do not search for ESLint configuration files in parent directories because
// Drupal 9 puts one in the *web* directory which we do not want applied.
//
// However, do manually extend from the ESLint configuration at the root of
// this repository.
root: true,
extends: ["../../../../.eslintrc.js"],
// [other ESlint configuration]
};
这两行告诉 ESLint 它不应该在 some_module 的父目录中搜索 ESLint 配置文件,而是应该手动读取和应用 ESLint 配置在存储库的根目录中,实际上完全跳过了 web/.eslintrc.json 配置文件。
根据ESLint documentation,当ESLint为运行时,它会在当前目录和包括根目录在内的所有父目录中搜索配置文件(/
) 、主目录或在 ESLint 配置文件中指定 root: true
选项的目录。
是否可以将 ESLint 配置为检查某些父目录中的 ESLint 配置文件,而不是其他目录?
为了使事情更具体,以我目前正在从事的基于 Drupal 9 的项目为例。项目树具有以下一般形状:
.
├── .eslintrc.js
├── node_modules
├── package-lock.json
├── package.json
└── web
├── .eslintrc.json
└── modules
└── custom
└── some_module
├── .eslintrc.js
├── node_modules
├── package-lock.json
└── package.json
如您所见,该项目在存储库的根目录下有一个 ESLint 配置文件,和许多项目一样,但在 some_module 特定于该模块的设置目录。
到目前为止一切顺利。但是,Drupal 9 还在 web 目录中分发了自己的内部 ESLint 配置文件。如果我在 Drupal 核心上工作,该配置文件会很有帮助,但我不是。尽管如此,它存在于我真正关心的两个 ESLint 配置文件之间会干扰我想要的 ESLint 配置,并且实际上会导致从存储库根目录调用 ESLint 失败。
是否可以配置ESLint读取some_module/.eslintrc.js配置文件和.eslintrc.js配置文件在版本库的根目录,但是忽略中间的web/.eslintrc.json?
经过一番研究和思考,我意识到extends
关键字可以帮助解决这个问题。我最终将以下内容添加到 some_module/.eslintrc.js 配置文件中:
module.exports = {
// Do not search for ESLint configuration files in parent directories because
// Drupal 9 puts one in the *web* directory which we do not want applied.
//
// However, do manually extend from the ESLint configuration at the root of
// this repository.
root: true,
extends: ["../../../../.eslintrc.js"],
// [other ESlint configuration]
};
这两行告诉 ESLint 它不应该在 some_module 的父目录中搜索 ESLint 配置文件,而是应该手动读取和应用 ESLint 配置在存储库的根目录中,实际上完全跳过了 web/.eslintrc.json 配置文件。