Skip to content

CI 및 기타 통합 설정

CI 파이프라인에서 Oxlint를 돌리고 린트 오류 시 빌드가 실패하도록 두는 것이 좋습니다.

Git pre-commit 훅 등 다른 통합도 함께 다룹니다.

CI

package.json의 devDependencies에 oxlint를 추가했고, 저장소에 Oxlint 설정이 있다고 가정합니다.

GitHub Actions

먼저 package.jsonlint 스크립트가 없다면 추가합니다.

package.json
json
{
  "scripts": {
    "lint": "oxlint"
  }
}

그다음 .github/workflows/oxlint.yml을 만듭니다.

.github/workflows/oxlint.yml
yaml
name: Lint

on:
  pull_request:
  push:
    branches: [main]

permissions: {}

jobs:
  oxlint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6

      - uses: pnpm/action-setup@v4

      - uses: actions/setup-node@v6
        with:
          node-version: lts/*
          cache: pnpm

      # alternatively use npm install / yarn install here
      - run: pnpm install --frozen-lockfile
      - run: pnpm run lint

대안으로 GitHub 형식 출력을 쓰면 경고/오류 주석이 더 잘 붙습니다.

package.json
json
{
  "scripts": {
    "lint:github": "oxlint --format=github"
  }
}

GitLab CI

GitLab CI에서는 oxlint --format=gitlab코드 품질(Code Quality)을 쓰면 MR에 인라인 주석을 달 수 있습니다.

package.json에 GitLab 형식을 파일로 남기는 스크립트를 추가합니다.

package.json
json
{
  "scripts": {
    "lint:gitlab": "oxlint --format=gitlab > gitlab-oxlint-report.json"
  }
}

.gitlab-ci.yml에 작업을 추가해 스크립트를 실행하고 리포트를 Code Quality 아티팩트로 올립니다.

.gitlab-ci.yml
yml
oxlint:
  image: node:lts
  stage: test
  before_script:
    # alternatively use pnpm install / yarn install here
    - npm install
  script:
    - npm run lint:gitlab
  artifacts:
    reports:
      codequality:
        # This is relative to your repository root, so adjust if your repo has a different structure or you put the report in a different location
        - gitlab-oxlint-report.json

코드 품질 기능을 쓰지 않으면 CI 작업에서 --format=gitlab 없이 oxlint만 실행하면 됩니다.

타입 인지 규칙을 쓰려면 설정에서 켜야 하며, node_modules 캐시로 설치 시간을 줄이는 것도 고려하세요.

Git 훅

lint-staged

lint-staged를 쓰는 JS/TS 프로젝트에서는 pre-commit 예시는 다음과 같습니다.

package.json
json
{
  "lint-staged": {
    "*.{js,jsx,ts,tsx,mjs,cjs}": "pnpm run lint"
  }
}

의존성 설치 시 훅을 자동 설치하려면 husky도 함께 쓰세요.

pre-commit

pre-commit으로 훅을 관리한다면:

.pre-commit-config.yaml
yaml
repos:
  - repo: https://github.com/oxc-project/mirrors-oxlint
    rev: v0.0.0
    hooks:
      - id: oxlint
        verbose: true

v0.0.0을 최신 버전으로 바꿉니다.

기타 통합

Unplugin

서드파티 패키지로 지원합니다.

Vite 플러그인

서드파티 패키지로 지원합니다.