功能旗標
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 | 從正在檢查的檔案中查找 `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"] }
}
若要在適用於檢查工作的 VS Code ESLint 擴充功能中啟用旗標,請指定 eslint.lintTask.options
設定
{
"eslint.lintTask.options": "--flag flag_one --flag flag_two ."
}