OXLint 作者的掘金账号:Boshen
OXLint 作者的 Github: Boshen
我们很高兴地宣布 oxlint --import-plugin
的 alpha 版发布,这是 eslint-plugin-import
的移植版本。
该移植旨在解决与 eslint-plugin-import
相关的所有已知问题:
- 性能 - 启用某些规则时,执行时间超过一分钟
- 依赖关系大小 - 188 个依赖关系,总计 30M
- 向后兼容性--必须支持 Node.js v4.0.0
- 依赖关系兼容性 - 需要用
eslint-plugin-import-x
替代 - 升级至 ESLint v9
发行版中有哪些内容?
如果您的项目使用 ESM(ECMAScript 模块),则此 alpha 版本期望会正常运行。
如果需要通过 tsconfig.compilerOptions.paths
使用路径别名(例如 @/foo
)、 可使用 --tsconfig
选项:
java
npx oxlint@latest --tsconfig ./tsconfig.json --import-plugin
通过 npx oxlint@latest --import-plugin
默认启用的规则是:
可通过 npx oxlint@latest --import-plugin -D rule-name
选择性启用的规则有:
- no-named-as-default
- no-named-as-default-member
- no-self-import
- no-duplicated
- no-amd
- no-default-export
- no-cycle
在原有规则的基础上,这些规则也有所改进;例如,no-cycle
规则的诊断功能如下所示,更清晰明了:
bash
⚠ eslint-plugin-import(no-cycle): Dependency cycle detected
╭─[apps/web/playwright/lib/fixtures.ts:13:42]
12 │ import { createPaymentsFixture } from "../fixtures/payments";
13 │ import { createBookingPageFixture } from "../fixtures/regularBookings";
· ─────────────────────────────
14 │ import { createRoutingFormsFixture } from "../fixtures/routingForms";
╰────
help: These paths form a cycle:
-> ../fixtures/regularBookings - apps/web/playwright/fixtures/regularBookings.ts
-> ./users - apps/web/playwright/fixtures/users.ts
-> ../lib/testUtils - apps/web/playwright/lib/testUtils.ts
-> ./fixtures - apps/web/playwright/lib/fixtures.ts
这个功能列表并不长。 但由于生态系统当前状态的复杂性, 实现这些规则并确保其正常工作需要大量的努力。
在过去的六个月里,我们利用业余时间开展工作,成功地完成了 --import--plugin
运行的所有先决条件:
- 用于模块解析的解析器
- 一个小型 "运行时",用于最大限度地并行处理依赖文件
- 用于存储导入/导出信息的
ModuleRecord
数据结构,以及相应的生成器
我如何提供帮助?
如果您是项目维护者(又称配置工程师),但没有时间或精力更新 ESLint 及其所有插件、 您可以参照 @brooooooklyn 的做法,在项目中,将 ESLint 替换为 Oxlint。
如果您是开源爱好者并愿意提供帮助,请到 discord 与我们交流,查看 linter 产品计划和进度问题,或通过 提出被推迟的新规则 提供帮助。
如果您是开源爱好者并愿意提供帮助,请到 discord 与我们交流,查看 linter 产品计划和进度问题,或通过 提出被推迟的新规则 提供帮助。
如果您是工程经理,或者愿意将您的项目迁移到 OxLint(目前已有 330 条规则, 并在不断增加),以降低基础设施成本、 您可以考虑 赞助,以便我们优先考虑您的项目。
请记住,"oxlint "目前是由社区驱动的,我相信只要有足够的资源,我们就能在未来几个月内让"--import-plugin "普遍可用。
要开始使用 oxlint
,请遵循 安装指南 或了解有关 oxc project 的更多信息。