Oxlint Import 플러그인 알파 버전
oxlint --import-plugin의 알파 릴리스를 발표하게 되어 기쁩니다. 이는 eslint-plugin-import의 포트입니다.
이 포트는 eslint-plugin-import와 관련된 모든 알려진 문제를 해결하는 것을 목표로 합니다:
- 성능 - 특정 규칙을 활성화했을 때 실행 시간이 1분을 초과함
- 종속성 크기 - 총 30메가바이트에 달하는 188개의 종속성
- 호환성 - Node.js v4.0.0 지원 필요
- 종속성 호환성 -
eslint-plugin-import-x로 교체해야 하는 필요성 - ESLint v9로 업그레이드하기
이번 릴리스에는 무엇이 포함되나요?
이 알파 릴리스는 프로젝트가 ESM (ECMAScript Modules) 형식일 경우 작동할 것으로 예상됩니다.
tsconfig.compilerOptions.paths를 통해 경로 별칭(예: @/foo)이 필요한 경우, --tsconfig 옵션을 사용할 수 있습니다:
npx oxlint@latest --tsconfig ./tsconfig.json --import-pluginnpx 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-duplicates
- no-amd
- no-default-export
- no-cycle
또한 이러한 규칙에 대한 개선도 이루어졌습니다. 예를 들어 no-cycle 규칙의 진단 메시지가 향상되었습니다:
⚠ eslint-plugin-import(no-cycle): 종속성 주기 감지됨
╭─[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";
╰────
도움말: 다음 경로들이 주기를 형성합니다:
-> ../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가 정상적으로 작동하기 위한 모든 사전 조건을 성공적으로 완료했습니다:
- 모듈 해석을 위한 해결기
- 처리 대상 파일들을 최대한 병렬로 처리하기 위한 작은 "런타임"
- 가져오기/내보내기 정보를 저장하기 위한
ModuleRecord데이터 구조 및 그에 해당하는 빌더
어떻게 도와줄 수 있나요?
프로젝트 유지보수자(즉, 설정 엔지니어)이고, ESLint 및 모든 플러그인을 업데이트하는 데 시간이나 에너지가 부족하다면, @brooooooklyn의 예를 따라 자신의 모든 프로젝트에서 ESLint을 oxlint으로 교체할 수 있습니다. (napi-rs/napi-rs/pull/2032)
오픈소스 열정가이며 도움을 주고 싶으시다면, discord에서 우리와 이야기하거나, 라인터 제품 계획 및 진행 현황 이슈를 확인하거나, 미뤄진 새로운 규칙 제안을 통해 도움을 줄 수 있습니다.
엔지니어링 매니저이거나, 인프라 비용 절감을 위해 330개 이상의 규칙을 갖춘 oxlint으로 프로젝트를 마이그레이션하려는 의향이 있으시다면, 후원을 고려해주시기 바랍니다. 이를 통해 저희가 귀하의 프로젝트 우선순위를 높일 수 있습니다.
기억하세요, oxlint는 현재 커뮤니티 중심으로 개발되고 있으며, 충분한 자원이 확보된다면 다음 몇 달 내에 --import-plugin를 일반 공개할 수 있다고 믿습니다.

