功能标志
ESLint 发布实验性和未来破坏性更改的功能标志,让用户选择加入他们想要的行为。标志在以下情况下使用
- 当一个功能是实验性的,并且尚未准备好为所有人启用时。
- 当一个功能是一个破坏性更改,将在下一个主要版本中正式合并,但用户可以在下一个主要版本之前选择加入该行为。
标志前缀
标志的前缀表示其状态
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
数组传递给 ESLint
和 Linter
类
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 ."
}