跳至内容

共享配置

ESLint 可共享配置 提供了一份全面的规则设置列表,您可以从这些设置开始。ESLint 风格维护了一些内置配置,您可以直接使用,也可以作为您自己的自定义配置的基础。

版本控制策略

我们认为在共享配置中添加新规则或调整选项是**非破坏性**更改。我们将在次要版本中尝试仅进行必要的更改。

配置工厂

微调的共享配置,提供干净一致的代码风格。

格式化和风格规则总是带有主观性。我们希望提供共享配置来简化使用,同时仍然允许您根据自己的喜好自定义规则。因此,与其他 ESLint 插件不同,我们提供了一个**工厂函数**,其中包含一些您可以自定义的高级选项。

js
// 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
]
js
// .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包中可用。

规则的默认值

请注意,并非所有规则都使用,并且为每个规则配置的选项可能与规则自身的默认值不同。

静态配置

我们还提供了一个从工厂函数预生成的静态配置,供您轻松使用,如果您同意我们的默认值。

默认选项是

js
{
  indent: 2,
  quotes: 'single',
  semi: false,
  jsx: true,
}
js
// eslint.config.js
import stylistic from '@stylistic/eslint-plugin'

export default [
  stylistic.configs['recommended-flat'],
  // ...your other config items
]
js
// .eslintrc.js
module.exports = {
  extends: [
    'plugin:@stylistic/recommended-extends'
  ],
  rules: {
    // ...your other rules
  }
}

启用所有可用规则

如果您想启用所有规则及其默认选项(不推荐),我们也提供了一个配置。

警告

ESLint Stylistic 中的许多规则都从 ESLint 的 10 年代码库中迁移而来。为了兼容性,我们保留了每个规则的原始默认选项。它们可能在不同的时间使用不同的理念设计,因此它们的默认选项可能并不总是能很好地协同工作。我们建议您使用工厂函数,它是一个经过微调的配置,具有干净一致的代码风格。

js
// eslint.config.js
import stylistic from '@stylistic/eslint-plugin'

export default [
  stylistic.configs['all-flat'],
  // ...your other config items
]
js
// .eslintrc.js
module.exports = {
  extends: [
    'plugin:@stylistic/all-extends'
  ],
  rules: {
    // ...your other rules
  }
}

信息

由于规则之间的兼容性,all 配置不包含 JSX 规则和不可修复规则。您可能需要手动配置它们。

此配置也存在于每个插件包中,例如,对于 @stylistic/eslint-plugin-js

js
// eslint.config.js
import stylisticJs from '@stylistic/eslint-plugin-js'

export default [
  stylisticJs.configs['all-flat'],
  // ...your other config items
]
js
// .eslintrc.js
module.exports = {
  extends: [
    'plugin:@stylistic/js/all-extends'
  ],
  rules: {
    // ...your other rules
  }
}

禁用传统规则

如果您正在扩展仍然包含传统规则并且尚未迁移的一些预设,我们提供配置预设来禁用所有这些规则。

迁移指南中了解更多信息。