共享配置
ESLint 可共享配置 提供了一份全面的规则设置列表,您可以从这些设置开始。ESLint 风格维护了一些内置配置,您可以直接使用,也可以作为您自己的自定义配置的基础。
版本控制策略
我们认为在共享配置中添加新规则或调整选项是**非破坏性**更改。我们将在次要版本中尝试仅进行必要的更改。
配置工厂
微调的共享配置,提供干净一致的代码风格。
格式化和风格规则总是带有主观性。我们希望提供共享配置来简化使用,同时仍然允许您根据自己的喜好自定义规则。因此,与其他 ESLint 插件不同,我们提供了一个**工厂函数**,其中包含一些您可以自定义的高级选项。
// eslint.config.js
import stylistic from '@stylistic/eslint-plugin'
export default [
stylistic.configs.customize({
// the following options are the default values
indent: 2,
quotes: 'single',
semi: false,
jsx: true,
// ...
}),
// ...you other config items
]
// .eslintrc.js
const stylistic = require('@stylistic/eslint-plugin')
const customized = stylistic.configs.customize({
// the following options are the default values
indent: 2,
quotes: 'single',
semi: false,
jsx: true,
// ...
})
module.exports = {
plugins: [
'@stylistic'
],
rules: {
...customized.rules,
// ...your other rules
}
}
有关配置规则的完整列表,请参阅源代码。
目前,此工厂仅在@stylistic/eslint-plugin
包中可用。
规则的默认值
请注意,并非所有规则都使用,并且为每个规则配置的选项可能与规则自身的默认值不同。
静态配置
我们还提供了一个从工厂函数预生成的静态配置,供您轻松使用,如果您同意我们的默认值。
默认选项是
{
indent: 2,
quotes: 'single',
semi: false,
jsx: true,
}
// eslint.config.js
import stylistic from '@stylistic/eslint-plugin'
export default [
stylistic.configs['recommended-flat'],
// ...your other config items
]
// .eslintrc.js
module.exports = {
extends: [
'plugin:@stylistic/recommended-extends'
],
rules: {
// ...your other rules
}
}
启用所有可用规则
如果您想启用所有规则及其默认选项(不推荐),我们也提供了一个配置。
警告
ESLint Stylistic 中的许多规则都从 ESLint 的 10 年代码库中迁移而来。为了兼容性,我们保留了每个规则的原始默认选项。它们可能在不同的时间使用不同的理念设计,因此它们的默认选项可能并不总是能很好地协同工作。我们建议您使用工厂函数,它是一个经过微调的配置,具有干净一致的代码风格。
// eslint.config.js
import stylistic from '@stylistic/eslint-plugin'
export default [
stylistic.configs['all-flat'],
// ...your other config items
]
// .eslintrc.js
module.exports = {
extends: [
'plugin:@stylistic/all-extends'
],
rules: {
// ...your other rules
}
}
信息
由于规则之间的兼容性,all
配置不包含 JSX 规则和不可修复规则。您可能需要手动配置它们。
此配置也存在于每个插件包中,例如,对于 @stylistic/eslint-plugin-js
// eslint.config.js
import stylisticJs from '@stylistic/eslint-plugin-js'
export default [
stylisticJs.configs['all-flat'],
// ...your other config items
]
// .eslintrc.js
module.exports = {
extends: [
'plugin:@stylistic/js/all-extends'
],
rules: {
// ...your other rules
}
}
禁用传统规则
如果您正在扩展仍然包含传统规则并且尚未迁移的一些预设,我们提供配置预设来禁用所有这些规则。
在迁移指南中了解更多信息。