CI и другие интеграции
Имеет смысл настроить CI так, чтобы Oxlint запускался и падал при ошибках линтера.
Ниже — git pre-commit и прочие интеграции.
CI
Ниже предполагается, что oxlint уже в devDependencies в package.json и в репозитории есть конфиг Oxlint.
GitHub Actions
Добавьте скрипт lint в package.json, если его ещё нет:
{
"scripts": {
"lint": "oxlint"
}
}Создайте .github/workflows/oxlint.yml:
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 для аннотаций предупреждений/ошибок:
{
"scripts": {
"lint:github": "oxlint --format=github"
}
}GitLab CI
С --format=gitlab и Code Quality в GitLab можно получить аннотации к merge request.
Скрипт в package.json, пишущий отчёт в файл:
{
"scripts": {
"lint:gitlab": "oxlint --format=gitlab > gitlab-oxlint-report.json"
}
}Задача в .gitlab-ci.yml — запуск и загрузка отчёта как артефакт Code Quality:
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Без Code Quality можно просто вызывать oxlint без --format=gitlab.
Если нужны правила с типами — включите их явно; кэшируйте node_modules, чтобы ускорить установку.
Git-хуки
lint-staged
Для JS/TS с lint-staged:
{
"lint-staged": {
"*.{js,jsx,ts,tsx,mjs,cjs}": "pnpm run lint"
}
}Чтобы хук ставился при установке зависимостей, можно использовать husky.
pre-commit
С pre-commit:
repos:
- repo: https://github.com/oxc-project/mirrors-oxlint
rev: v0.0.0
hooks:
- id: oxlint
verbose: trueПодставьте актуальную версию вместо v0.0.0.
Прочие интеграции
Unplugin
Поддержка через сторонний пакет
Плагин Vite
Через сторонний пакет