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 的更多信息。