Коды ошибок
При сборке, тестировании и других операциях 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:
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сборщик ищет реальный экспорт, которого в рантайме нет:
// ✗ Ошибка: '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:
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 в проекте.
Как исправить:
Инициализируйте тестовое окружение:
chef init testsПодробнее — в разделе Тестирование.
CF2004 — Не указана входная точка
В bundle.config не указан параметр input.
Как исправить:
Добавьте input в bundle.config:
export default {
input: 'src/index.ts',
output: 'dist/index.bundle.js',
};CF3xxx — Тестирование
CF3001 — Неизвестный тип браузера
Указан неподдерживаемый браузер в опции --project.
Как исправить:
Доступные браузеры: chromium, firefox, webkit.
chef test main.core --project chromium firefoxCF3002 — E2E-тесты не найдены
В расширении не найдены файлы E2E-тестов.
Как исправить:
Создайте файлы тестов в директории test/e2e/ расширения. Файлы должны соответствовать паттерну *.test.ts или *.spec.ts.
CF3003 — Ошибка Playwright
Playwright завершился с ошибкой при запуске тестов.
Как исправить:
- Убедитесь, что Playwright установлен (
npx playwright install) - Проверьте конфигурацию в
playwright.config.ts - Запустите тесты с
--headedдля визуальной отладки:
chef test main.core --headedCF5xxx — Окружение
CF5001 — Директория вне корня проекта
Указанная директория находится за пределами корня проекта.
Как исправить:
Убедитесь, что вы запускаете Chef из директории проекта или указываете путь внутри проекта:
cd /path/to/project
chef build ui.buttonsCF9xxx — Внутренние ошибки
Ошибки с кодами CF9xxx указывают на внутренние проблемы Chef. Они не вызваны вашим кодом.
CF9001 — Ошибка чтения пакета
Не удалось прочитать или распарсить метаданные расширения.
CF9002 — Необработанное исключение
Необработанная ошибка при выполнении задачи.
CF9003 — Ошибка конвертации файла
Не удалось сконвертировать файл при миграции Flow → TypeScript.
CF9004 — Ошибка генерации алиасов
Не удалось сгенерировать TypeScript-алиасы при chef init build.
CF9005 — Неожиданная ошибка сборки
Непредвиденная ошибка в процессе сборки.
Если вы получили ошибку CF9xxx — это баг Chef. Пожалуйста, создайте issue с полным текстом ошибки и шагами воспроизведения.