共享配置
要共享您的 ESLint 配置,请创建一个 **可共享配置**。您可以将可共享配置发布到 npm,以便其他人可以下载并将其用于他们的 ESLint 项目。
本页介绍如何创建和发布可共享配置。
创建可共享配置
可共享配置只是导出配置对象或数组的 npm 包。首先,创建一个 Node.js 模块,就像平常一样。
虽然您可以以任何您喜欢的名称命名包,但我们建议使用以下约定之一来使您的包更易于识别
- 以
eslint-config-
开头,例如eslint-config-myconfig
。 - 对于 npm 作用域模块,请使用
@scope/eslint-config
命名或添加模块前缀,例如@scope/eslint-config
或@scope/eslint-config-myconfig
。
在您的模块中,从模块的 main
入口点文件导出可共享配置。默认的 main 入口点是 index.js
。例如
// index.js
export default [
{
languageOptions: {
globals: {
MyGlobal: true
}
},
rules: {
semi: [2, "always"]
}
}
];
由于 index.js
文件只是 JavaScript,因此您可以从文件中读取这些设置或动态生成它们。
发布可共享配置
可共享配置准备就绪后,您可以将其发布到 npm,以便与他人共享。我们建议在 package.json
文件中使用 eslint
和 eslintconfig
关键字,以便其他人可以轻松找到您的模块。
您应该在 package.json
中使用 peerDependencies 字段声明您对 ESLint 的依赖关系。推荐的声明依赖关系的方法是使用“>=”范围语法,使用最低的必需 ESLint 版本,以确保向后兼容性。例如
{
"peerDependencies": {
"eslint": ">= 9"
}
}
如果您的可共享配置依赖于插件或自定义解析器,则应在 package.json
中将这些包指定为 dependencies
。
使用可共享配置
要使用可共享配置,请在 eslint.config.js
文件中导入包并将其添加到导出的数组中,如下所示
// eslint.config.js
import myconfig from "eslint-config-myconfig";
export default [
...myconfig
];
覆盖可共享配置的设置
您可以通过在导入可共享配置后将其直接添加到 eslint.config.js
文件中来覆盖可共享配置的设置。例如
// eslint.config.js
import myconfig from "eslint-config-myconfig";
export default [
...myconfig,
// anything from here will override myconfig
{
rules: {
"no-unused-vars": "warn"
}
}
];
共享多个配置
由于可共享配置只是 npm 包,因此您可以从同一个包中导出任意数量的配置。除了使用 package.json
中的 main
入口点指定默认配置外,您还可以通过向 npm 包添加一个新文件,然后从 eslint.config.js
文件中引用它来指定其他可共享配置。
例如,您可以在 npm 包的根目录中创建一个名为 my-special-config.js
的文件,并导出一个配置,例如
// my-special-config.js
export default {
rules: {
quotes: [2, "double"]
}
};
然后,假设您正在使用包名 eslint-config-myconfig
,您可以通过以下方式访问其他配置
// eslint.config.js
import myconfig from "eslint-config-myconfig";
import mySpecialConfig from "eslint-config-myconfig/my-special-config.js";
export default [
...myconfig,
mySpecialConfig,
// anything from here will override myconfig and mySpecialConfig
{
rules: {
"no-unused-vars": "warn"
}
}
];