Skip to content

Коды ошибок в JSON-выводе

Все ошибки и предупреждения в JSON-ответе имеют поле code. Полный список с описанием — на странице Коды ошибок. Здесь — те, что чаще всего встречаются именно в JSON-ответах.

Где появляется ошибка

  • result.error — фатальный сбой команды до того, как она дошла до работы с расширениями (невалидный cwd, не нашёлся корень проекта, конфликт опций).
  • extensions[].errors[] / extensions[].warnings[] — ошибки и предупреждения по конкретному расширению.
  • notFound[] — имена/паттерны, которые не разрешились в расширения. Не считается фатальной ошибкой сами по себе.

Окружение (CF5xxx)

КодКогда возникает
CF.OUTSIDE_PROJECT_ROOTcwd указывает на путь вне корня проекта.
CF.PROJECT_ROOT_NOT_FOUNDНе удалось определить корень проекта Bitrix из указанного cwd.
CF.INVALID_CWDУказанная директория не существует.

Эти коды попадают в result.error.

Конфигурация / использование (CF2xxx)

КодКогда возникает
CF.NOT_FOUNDРасширение по указанному имени/паттерну не найдено. Попадает в notFound[].
CF.PACKAGE_PROTECTEDРасширение помечено protected — пропущено.
CF.OPTION_DENIEDНесовместимые опции (например, --watch с --reporter json). В result.error.

Сборка (CF1xxx)

Самые частые коды в extensions[].warnings и extensions[].errors для chef build:

КодЧто значит
CF.CIRCULAR_DEPENDENCYЦиклическая зависимость файлов внутри расширения.
CF.UNRESOLVED_IMPORTНе удалось разрешить импорт.
CF.MISSING_EXPORTИмпортируется экспорт, которого нет.
CF.UNUSED_EXTERNAL_IMPORTИмпорт внешнего модуля, не используется.
CF.SYNTAX_ERRORСинтаксическая ошибка.
CF.MINIFICATION_ERRORСбой минификатора.
CF.BASELINE_JS_UNSUPPORTEDИспользована JS-фича, не входящая в targets.
CF.BASELINE_CSS_UNSUPPORTEDИспользована CSS-фича, не входящая в targets.
CF.UNEXPECTED_BUILD_ERRORНепредвиденная ошибка Rollup или плагинов.

Линт (CF4xxx)

КодЧто значит
CF.LINT_FAILEDЛинтер нашёл ошибки. Сообщения — в extensions[].errors[].

В поле code сообщения линтера приходит rule id ESLint (no-console, import/no-default-export и т.п.) — CF.LINT_FAILED остаётся резервом для случаев, когда rule id отсутствует.

Тесты (CF3xxx)

КодЧто значит
CF.TEST_FAILEDХотя бы один тест упал.
CF.PLAYWRIGHT_ERRORОшибка запуска Playwright (например, нет браузеров).
CF.UNKNOWN_BROWSERЗапрошен неизвестный браузер.
CF.PLAYWRIGHT_CONFIG_NOT_FOUNDНе найден playwright.config.

В extensions[].errors[] для chef test каждой записи соответствует один упавший тест в одном браузере.

Type-check

КодЧто значит
CF.TS_TYPE_ERRORType-check нашёл ошибки. В errors[] — детали с frame.

В поле code элемента errors[] может быть код TypeScript (TS2322, TS2304 и т.п.) — как его выдаёт компилятор.

Внутренние (CF9xxx)

КодКогда возникает
CF.PACKAGE_READ_ERRORНе удалось прочитать расширение или его конфиг.
CF.UNCAUGHT_EXCEPTIONНепредвиденное исключение, нормализованное в payload.

Пример: ветвление по коду в shell

bash
chef build main.core --reporter json | jq -e '
  if .error then
    if .error.code == "CF5002" then "no project root" | halt_error
    elif .error.code == "CF5001" then "bad cwd" | halt_error
    else .error.message | halt_error
    end
  else . end
'

Полный список

Все коды chef описаны на главной странице Коды ошибок.

Распространяется под лицензией MIT.