Skip to content

Oxlint Import 플러그인 알파

oxlint --import-plugin의 알파 릴리스를 공개합니다. eslint-plugin-import를 이식한 것입니다.

이 포트는 eslint-plugin-import와 알려진 문제를 해결하는 것을 목표로 합니다.

이번 릴리스에 포함된 것

알파는 프로젝트가 ESM(ECMAScript Modules)일 때 동작할 것으로 기대합니다.

경로 별칭(예: @/foo)이 tsconfig.compilerOptions.paths로 필요하면 --tsconfig 옵션을 쓸 수 있습니다.

npx oxlint@latest --tsconfig ./tsconfig.json --import-plugin

npx oxlint@latest --import-plugin으로 기본 켜지는 규칙:

npx oxlint@latest --import-plugin -D rule-name으로 선택적으로 켤 수 있는 규칙:

규칙 자체도 개선되었습니다. 예를 들어 no-cycle 진단이 다음과 같이 나아졌습니다.

 ⚠ 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

긴 기능 목록은 아니지만, 현재 생태계 상태가 복잡해 이 규칙들을 구현하고 제대로 동작하게 만드는 데 많은 노력이 들었습니다.

지난 6개월간 여가 시간에 --import-plugin이 돌아갈 전제 조건을 마쳤습니다.

어떻게 도울 수 있나요?

프로젝트 관리자(일명 설정 엔지니어)로서 ESLint와 플러그인을 계속 최신으로 유지할 시간이 없다면, @brooooooklyn처럼 모든 프로젝트에서 ESLint를 oxlint로 바꾸는 방법을 참고해 보세요.

오픈소스에 기여하고 싶다면 discord에서 이야기하거나, linter 제품 계획·진행 이슈를 보거나, 연기되었던 새 규칙 제안을 도와 주세요.

엔지니어링 매니저이거나 인프라 비용 절감을 위해 프로젝트를 oxlint(330개 이상 규칙, 계속 늘어남)로 옮기려 한다면 스폰서를 고려해 주시면 해당 프로젝트를 우선할 수 있습니다.

oxlint는 현재 커뮤니티 주도입니다. 자원이 충분하다면 몇 달 안에 --import-plugin도 정식 수준이 될 수 있다고 믿습니다.


oxlint 사용은 설치 가이드, oxc 프로젝트 소개를 참고하세요.