Skip to content

Коды ошибок

При сборке, тестировании и других операциях Chef выводит ошибки и предупреждения с диагностическими кодами формата CFxxxx:

✗ ui.my-extension
  [CF1002] Unexpected token (3:5)

  > 3 | const x = {;
      |            ^

Код позволяет быстро определить природу проблемы и найти решение.

Категории

ДиапазонКатегорияОписание
CF1xxxСборкаОшибки и предупреждения при сборке расширения
CF2xxxКонфигурацияОшибки в конфигурационных файлах
CF3xxxТестированиеПроблемы при запуске тестов
CF5xxxОкружениеОшибки окружения и CLI
CF9xxxВнутренниеВнутренние ошибки Chef

CF1xxx — Сборка

CF1001 — Ошибка типов TypeScript

TypeScript обнаружил несоответствие типов в коде.

✗ ui.my-extension
  [CF1001] TS2322: Type 'string' is not assignable to type 'number'.

  src/index.ts:5:7

Как исправить:

Откройте указанный файл и строку. Исходный код TS-ошибки указан в сообщении (например, TS2322) — его можно найти в документации TypeScript.

Распространённые случаи:

  • TS2322 — несовместимые типы при присваивании
  • TS2307 — не найден модуль. Проверьте, что расширение есть в проекте и алиасы обновлены (chef init build)
  • TS2345 — неверный тип аргумента функции

CF1002 — Синтаксическая ошибка

Ошибка парсинга JavaScript, TypeScript или CSS.

✗ ui.my-extension
  [CF1002] Unexpected token (3:5)

  > 3 | const x = {;
      |            ^

Как исправить:

Откройте файл по указанной строке и столбцу. Частые причины:

  • Незакрытая скобка, кавычка или шаблонная строка
  • Пропущенная запятая или точка с запятой
  • Невалидный синтаксис CSS (незакрытый блок, ошибка в селекторе)

CF1003 — Ошибка минификации

Не удалось минифицировать бандл при production-сборке.

Как исправить:

Обычно указывает на код, который прошёл парсинг, но содержит конструкции, не поддерживаемые минификатором. Попробуйте собрать без --production — если dev-сборка проходит, проблема именно в минификации. Сообщите об ошибке разработчикам Chef.

CF1004 — Файл из concat не найден

Файл, указанный в опции concat конфига bundle.config, не существует.

⚠ ui.my-extension
  [CF1004] JS file not found: './src/legacy/utils.js'

Как исправить:

Проверьте пути в секции concat вашего bundle.config:

ts
export default {
  input: 'src/index.ts',
  output: 'dist/index.bundle.js',
  concat: {
    js: [
      './src/legacy/utils.js',  // ← проверьте, что файл существует
      './dist/index.bundle.js',
    ],
  },
};

CF1005 — Не удалось прочитать файл concat

Файл из concat существует, но не может быть прочитан.

Как исправить:

Проверьте права доступа к файлу. Убедитесь, что файл не повреждён и имеет корректную кодировку.

CF1006 — Циклическая зависимость

Два или более модуля импортируют друг друга, образуя цикл.

⚠ ui.my-extension
  [CF1006] Circular dependency: src/a.ts → src/b.ts → src/a.ts

Как исправить:

Циклические зависимости могут приводить к undefined при импорте. Варианты решения:

  • Вынесите общий код в отдельный модуль, который импортируют оба файла
  • Объедините модули, если они тесно связаны
  • Используйте ленивый импорт (import()) в одном из модулей

TIP

Если циклическая зависимость не вызывает проблем в рантайме, предупреждение можно игнорировать. Но рекомендуется устранить цикл для предсказуемости.

CF1007 — Отсутствующий экспорт

Импортируемое имя не экспортируется из указанного модуля.

✗ ui.my-extension
  [CF1007] 'formatDate' is not exported by 'src/utils.ts', imported by 'src/index.ts'

Как исправить:

  • Проверьте, что имя написано правильно (с учётом регистра)
  • Убедитесь, что функция/класс/переменная действительно экспортируется (export)
  • Если имя было переименовано — обновите импорт
  • Если импортируется TypeScript-тип — используйте import type. Без type сборщик ищет реальный экспорт, которого в рантайме нет:
ts
// ✗ Ошибка: 'UserOptions' is not exported
import { UserOptions } from './types';

// ✓ Правильно
import type { UserOptions } from './types';

CF1008 — this перезаписан в undefined

Использование this на верхнем уровне модуля. При сборке в модульном формате this верхнего уровня заменяется на undefined.

Как исправить:

  • Замените this на globalThis или window, если нужен глобальный объект
  • Если this используется внутри класса или функции — ошибка ложная, можно игнорировать

CF1009 — Использование eval

Код содержит вызов eval().

Как исправить:

eval() в модульном контексте работает иначе, чем в обычных скриптах. По возможности замените на альтернативные решения (new Function(), JSON.parse и т.д.).

WARNING

eval() — серьёзная уязвимость безопасности. Избегайте его использования в продакшен-коде.

CF1010 — Не указано имя глобальной переменной

Для формата IIFE не указано имя, через которое экспорт будет доступен глобально.

Как исправить:

Добавьте namespace в bundle.config:

ts
export default {
  input: 'src/index.ts',
  output: 'dist/index.bundle.js',
  namespace: 'BX.MyExtension',
};

CF1011 — Неиспользуемый внешний импорт

Импортированное из внешней зависимости значение не используется в коде.

Как исправить:

Удалите неиспользуемый импорт. Если импорт нужен для побочных эффектов — используйте import 'module' без деструктуризации.

CF1012 — Неразрешённый импорт

Модуль, указанный в import, не найден.

Как исправить:

  • Проверьте правильность пути (относительный путь должен начинаться с ./ или ../)
  • Для npm-пакетов — установите пакет (npm install)
  • Для Bitrix-расширений — убедитесь, что расширение существует и доступно

CF1013 — Не указано имя для IIFE-экспорта

Расширение экспортирует значения, но не указано имя для IIFE-обёртки.

Как исправить:

Аналогично CF1010 — укажите namespace в bundle.config.

CF1014 — Предупреждение плагина

Общее предупреждение от одного из плагинов сборки.

Как исправить:

Прочитайте текст предупреждения — он содержит детали проблемы. Обычно это некритичная ситуация, не требующая немедленного вмешательства.

CF1099 — Неизвестное предупреждение сборки

Предупреждение от Rollup, не попадающее ни в одну из категорий выше.

Как исправить:

Прочитайте текст предупреждения. Если проблема непонятна — сообщите разработчикам Chef, указав полный текст предупреждения.

CF2xxx — Конфигурация

CF2001 — Опция запрещена конфигом проекта

Настройка в bundle.config запрещена конфигом проекта chef.config.

Как исправить:

Проверьте chef.config.ts в корне проекта — администратор проекта ограничил допустимые значения. Обратитесь к ответственному за конфигурацию проекта.

CF2002 — Невалидное значение конфига

Значение в bundle.config имеет неверный тип или формат.

Как исправить:

Сверьтесь с документацией bundle.config. Частые ошибки:

  • output — строка вместо объекта
  • concat — неверная структура (ожидается { js: [...], css: [...] })
  • targets — число вместо строки

CF2003 — Конфиг Playwright не найден

Не найден playwright.config.ts в проекте.

Как исправить:

Инициализируйте тестовое окружение:

bash
chef init tests

Подробнее — в разделе Тестирование.

CF2004 — Не указана входная точка

В bundle.config не указан параметр input.

Как исправить:

Добавьте input в bundle.config:

ts
export default {
  input: 'src/index.ts',
  output: 'dist/index.bundle.js',
};

CF3xxx — Тестирование

CF3001 — Неизвестный тип браузера

Указан неподдерживаемый браузер в опции --project.

Как исправить:

Доступные браузеры: chromium, firefox, webkit.

bash
chef test main.core --project chromium firefox

CF3002 — E2E-тесты не найдены

В расширении не найдены файлы E2E-тестов.

Как исправить:

Создайте файлы тестов в директории test/e2e/ расширения. Файлы должны соответствовать паттерну *.test.ts или *.spec.ts.

CF3003 — Ошибка Playwright

Playwright завершился с ошибкой при запуске тестов.

Как исправить:

  • Убедитесь, что Playwright установлен (npx playwright install)
  • Проверьте конфигурацию в playwright.config.ts
  • Запустите тесты с --headed для визуальной отладки:
bash
chef test main.core --headed

CF5xxx — Окружение

CF5001 — Директория вне корня проекта

Указанная директория находится за пределами корня проекта.

Как исправить:

Убедитесь, что вы запускаете Chef из директории проекта или указываете путь внутри проекта:

bash
cd /path/to/project
chef build ui.buttons

CF9xxx — Внутренние ошибки

Ошибки с кодами CF9xxx указывают на внутренние проблемы Chef. Они не вызваны вашим кодом.

CF9001 — Ошибка чтения пакета

Не удалось прочитать или распарсить метаданные расширения.

CF9002 — Необработанное исключение

Необработанная ошибка при выполнении задачи.

CF9003 — Ошибка конвертации файла

Не удалось сконвертировать файл при миграции Flow → TypeScript.

CF9004 — Ошибка генерации алиасов

Не удалось сгенерировать TypeScript-алиасы при chef init build.

CF9005 — Неожиданная ошибка сборки

Непредвиденная ошибка в процессе сборки.


Если вы получили ошибку CF9xxx — это баг Chef. Пожалуйста, создайте issue с полным текстом ошибки и шагами воспроизведения.

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