Skip to content

Oxlint v0.10 迁移指南

本篇迁移说明针对旧版 Oxlint。 若你需要了解最新的 v1.0 稳定版信息,请参阅 Oxlint v1.0 稳定版公告

Oxlint v0.10.0 已发布!新版加入多项令人兴奋的能力,其中对配置文件的增强尤为突出。

新特性

新规则

本轮新增规则包括:

  • promise/no-callback-in-promise
  • react/iframe-missing-sandbox
  • node/no-new-require

并为以下规则补齐自动修复/建议:

  • eslint/no-plusplus

按分类启用/禁用规则

现在可以在配置文件中通过 categories 字段批量控制整类规则的等级。

以前也许要这样跑命令:

sh
oxlint -D correctness -W suspicious -c oxlint.json

现在只需在 oxlint.json 中声明分类:

jsonc
{
  "categories": {
    "correctness": "deny", 
    "suspicious": "warn", 
  }, 
  "rules": {
    "no-const-assign": "error",
    "import/no-cycle": "error",
  },
}

即可告别 -D/-W 这些 flag。

配置文件支持 plugins

配置现已兼容 ESLint v8 风格的 plugins 数组,可不依赖 CLI 额外传参即可启用插件, 在 VS Code 里也更容易开箱即用。

jsonc
{
  "plugins": ["import"], 
  "categories": {
    "correctness": "deny",
    "suspicious": "warn",
  },
  "rules": {
    "react/jsx-uses-react": "off",
    "react/react-in-jsx-scope": "off",
  },
}

categories 会同样作用于所选插件的规则集合:

jsonc
{
  "plugins": ["import"],
  // `categories` 会影响全部已启用插件里的规则权重
  "categories": {
    "correctness": "allow",
    "suspicious": "warn",
  },
  "rules": {
    "no-const-assign": "error",
    "import/no-cycle": "error",
  },
}

破坏性变更与迁移指引

CLI 与配置文件之间的优先级反转

先前:配置文件覆盖 CLI。例如执行

sh
oxlint -A correctness -c oxlintrc.json

再配合

jsonc
{
  "rules": {
    "no-const-assign": "error",
  },
}

最终只有 no-const-assign 处于 error,其余均被关闭。

现在:CLI 会覆盖配置文件。同一命令、同一配置 ⇒ 全部规则都处于关闭。若要获得旧体验,请在配置里写明分类,而不要仅靠 CLI -A/-D

sh
oxlint -c oxlint.json
jsonc
{
  "categories": {
    "correctness": "allow", 
  }, 
  "rules": {
    "no-const-assign": "error",
  },
}