Коды ошибок в JSON-выводе
Все ошибки и предупреждения в JSON-ответе имеют поле code. Полный список с описанием — на странице Коды ошибок. Здесь — те, что чаще всего встречаются именно в JSON-ответах.
Где появляется ошибка
result.error— фатальный сбой команды до того, как она дошла до работы с расширениями (невалидныйcwd, не нашёлся корень проекта, конфликт опций).extensions[].errors[]/extensions[].warnings[]— ошибки и предупреждения по конкретному расширению.notFound[]— имена/паттерны, которые не разрешились в расширения. Не считается фатальной ошибкой сами по себе.
Окружение (CF5xxx)
| Код | Когда возникает |
|---|---|
CF.OUTSIDE_PROJECT_ROOT | cwd указывает на путь вне корня проекта. |
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_ERROR | Type-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 описаны на главной странице Коды ошибок.