Skip to content

代码检查器

贡献新规则

有关如何向 Oxlint 添加新规则,请参阅 添加规则 指南。

开发

创建一个 ./test.ts,然后运行:

bash
just watch "cargo run --bin oxlint -- test.ts"

或者针对特定规则进行测试和过滤:

bash
just watch "cargo test -p oxc_linter -- rule-name"

使用完整代码库测试 oxlint

要在一个完整的代码库上测试 oxlint,例如在大型 JavaScript/TypeScript 项目中测试你的修改,可以构建 oxlint CLI 工具,并将其应用于该代码库。

bash
# 在 oxc 仓库中构建 oxlint CLI
just oxlint-node
# 然后在你想要测试的代码库目录中,使用 node 运行 oxlint:
node <path-to-oxc-repo>/apps/oxlint/dist/cli.js
# 你也可以传入参数,例如 -D 以启用特定规则,以及 --disable-x-plugin 来禁用默认插件:
node <path-to-oxc-repo>/apps/oxlint/dist/cli.js -D rulename --disable-unicorn-plugin --disable-oxc-plugin --disable-typescript-plugin

快照测试

使用 cargo insta 进行快照测试。

在运行 cargo test -p oxc_linter 后,当调用 Tester::new(RULE::NAME, pass, fail).test_and_snapshot() 时,将生成一个新的 rule.snap.new 文件。

使用 cargo insta accept 来接受所有快照更改。

规则类别

  • correctness - 代码存在明显错误或无用
  • suspicious - 代码很可能错误或无用
  • pedantic - 检查项较为严格,偶尔会产生误报
  • perf - 可以编写得更快的代码
  • style - 应以更符合习惯的方式编写的代码
  • restriction - 在启用前应逐条评估的检查项
  • nursery - 仍在开发中的新检查项