Skip to content

Oxlint v0.10 — руководство по миграции

Это руководство по миграции для более старой версии Oxlint. Информацию о последнем стабильном релизе v1.0 см. в анонсе Oxlint v1.0 Stable.

Вышел Oxlint v0.10.0! В этом релизе несколько важных возможностей, в том числе заметные улучшения файлов конфигурации.

Новые возможности

Новые правила

В релиз входят следующие новые правила:

  • promise/no-callback-in-promise
  • react/iframe-missing-sandbox
  • node/no-new-require

А также автоматические исправления и предложения для:

  • eslint/no-plusplus

Включение и отключение правил по категориям

Теперь можно включать или отключать целые категории правил полем categories в файле конфигурации.

Вместо такой команды:

sh
oxlint -D correctness -W suspicious -c oxlint.json

можно добавить в oxlint.json поле categories:

jsonc
{
  "categories": {
    "correctness": "deny", 
    "suspicious": "warn", 
  }, 
  "rules": {
    "no-const-assign": "error",
    "import/no-cycle": "error",
  },
}

и убрать флаги -D и -W.

В файлах конфигурации поддерживаются plugins

Конфигурационные файлы теперь поддерживают массив plugins из конфигов ESLint v8. Это позволяет включать плагины без аргументов CLI и использовать плагины в VSCode.

jsonc
{
  "plugins": ["import"], 
  "categories": {
    "correctness": "deny",
    "suspicious": "warn",
  },
  "rules": {
    "react/jsx-uses-react": "off",
    "react/react-in-jsx-scope": "off",
  },
}

Это хорошо сочетается с categories: включённые и отключённые категории затрагивают и плагины.

jsonc
{
  "plugins": ["import"],
  // `categories` влияет на все включённые плагины
  "categories": {
    "correctness": "allow",
    "suspicious": "warn",
  },
  "rules": {
    "no-const-assign": "error",
    "import/no-cycle": "error",
  },
}

Критические изменения и миграция

Приоритет правил: CLI и конфиг

Раньше конфиг переопределял правила из аргументов CLI. Например, при запуске:

sh
oxlint -A correctness -c oxlintrc.json

с таким конфигом

jsonc
{
  "rules": {
    "no-const-assign": "error",
  },
}

получалось одно правило no-const-assign на уровне error, а все остальные были отключены (т.е. в состоянии «allow»).

Теперь аргументы CLI переопределяют конфиг. Та же команда с тем же конфигом даст полное отключение всех правил. Чтобы получить прежнее поведение, включайте и отключайте категории в конфиге, а не только через CLI.

sh
oxlint -c oxlint.json
jsonc
{
  "categories": {
    "correctness": "allow", 
  }, 
  "rules": {
    "no-const-assign": "error",
  },
}