版本

功能标志

ESLint 发布实验性和未来破坏性更改的功能标志,让用户选择加入他们想要的行为。标志在以下情况下使用

  1. 当一个功能是实验性的,并且尚未准备好为所有人启用时。
  2. 当一个功能是一个破坏性更改,将在下一个主要版本中正式合并,但用户可以在下一个主要版本之前选择加入该行为。

标志前缀

标志的前缀表示其状态

  • unstable_ 表示该功能是实验性的,并且实现在功能稳定之前可能会发生变化。这是一个“使用风险自负”的功能。
  • v##_ 表示该功能已稳定,将在下一个主要版本中可用。例如,v10_some_feature 表示这是一个破坏性更改,将在 ESLint v10.0.0 中正式发布。这些标志在每个主要版本中都会被删除,并且进一步使用它们会抛出错误。

如果一个功能是非破坏性更改,则可能会从不稳定状态变为默认启用,而无需主要版本发布。

以下策略适用于 unstable_ 标志。

  • 当功能稳定时
    • 如果默认启用该功能将是一个破坏性更改,则会添加一个新的 v##_ 标志作为活动标志,并且 unstable_ 标志变为非活动状态。进一步使用 unstable_ 标志会自动启用 v##_ 标志,但会发出警告。
    • 否则,该功能默认启用,并且 unstable_ 标志变为非活动状态。进一步使用 unstable_ 标志会发出警告。
  • 如果该功能被放弃,则 unstable_ 标志变为非活动状态。进一步使用它会抛出错误。
  • 所有非活动的 unstable_ 标志都会在每个主要版本中删除,并且进一步使用它们会抛出错误。

活动标志

以下标志目前可在 ESLint 中使用。

标志 描述
unstable_config_lookup_from_file从正在 lint 的文件中查找 `eslint.config.js`。

非活动标志

以下标志曾经使用过,但不再活动。

标志 描述 非活动原因
unstable_ts_config启用 TypeScript 配置文件。此功能现在默认启用。

如何使用功能标志

由于功能标志是严格选择加入的,因此您需要手动启用您想要的标志。

使用 CLI 启用功能标志

在命令行中,您可以使用 --flag 选项指定功能标志。您可以指定任意数量的标志

npm

npx eslint --flag flag_one --flag flag_two file.js 

yarn

yarn dlx eslint --flag flag_one --flag flag_two file.js 

pnpm

pnpm dlx eslint --flag flag_one --flag flag_two file.js 

bun

bunx eslint --flag flag_one --flag flag_two file.js 

使用 API 启用功能标志

当使用 API 时,您可以将 flags 数组传递给 ESLintLinter

const { ESLint, Linter } = require("eslint");

const eslint = new ESLint({
    flags: ["flag_one", "flag_two"]
});

const linter = new Linter({
    flags: ["flag_one", "flag_two"]
});

在 VS Code 中启用功能标志

要在编辑器的 VS Code ESLint 扩展中启用标志,请在您的 settings.json 文件中的 eslint.options 设置中指定您想要的标志

{
  "eslint.options": { "flags": ["flag_one", "flag_two"] }
}

要在 lint 任务的 VS Code ESLint 扩展中启用标志,请指定 eslint.lintTask.options 设置

{
  "eslint.lintTask.options": "--flag flag_one --flag flag_two ."
}
更改语言