Выбор ответа Senior tsconfig и декларации обновлено

Project references в монорепо

Вопрос

Что нужно, чтобы пакет можно было подключить через references и собирать tsc -b?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: "composite": true в tsconfig пакета. Project references собирают граф проектов, и tsc -b пересобирает только изменившиеся, используя .d.ts и .tsbuildinfo зависимостей вместо повторной проверки их исходников.

Варианты ответа

  1. "composite": true в tsconfig пакетаправильный ответ
  2. "allowJs": true в tsconfig пакета
  3. Достаточно указать путь к пакету в paths
  4. "noEmit": true в tsconfig пакета

Разбор

Project references собирают граф проектов, и tsc -b пересобирает только изменившиеся, используя .d.ts и .tsbuildinfo зависимостей вместо повторной проверки их исходников. Для этого у подключаемого проекта должен быть composite: true: он включает declaration и incremental-информацию и требует, чтобы все файлы были явно охвачены include или files. paths только перенаправляет разрешение модулей и ничего не собирает, noEmit несовместим с ролью зависимости, allowJs про JS-файлы.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме