Управление типографическим проектом monorepo с пряжей и ts 3.0

Я уже некоторое время реагирую на собственную структуру monorepo

/app
  package.json
/firebase
  /functions
    tsconfig.json
    package.json
/types
  package.json
/ios
/android
tsconfig.json

ios и android - это соответствующий код, поэтому мы действительно не заботимся о них, просто включив здесь нужный полный пример.

Фактические проекты:

app - логика приложения

firebase/functions - логическая схема

types - интерфейсы моделей и магазинов

каждый имеет файл package.json с атрибутом имени, таким как @MyCompany/app. Это делается для рабочих областей пряжи и позволяет мне легко импортировать вещи между проектами.

До сих пор это было хорошо, и теперь появился машинописный текст 3, и я хочу посмотреть, есть ли способ очистить его?

На данный момент у меня есть 2 файла tsconfig, я считаю, что могу как-то объединить их в один?

Кроме того, есть ли способ определить несколько файлов .d.ts вместо моего types filder и сделать мою модель и хранить интерфейсы, доступные глобально через проекты?

Если я использую машинописный текст 3, мне нужно сохранить рабочие области пряжи? Эти проекты нигде не публикуются, но развернуты для разных целей

Ответ 1

На данный момент у меня есть 2 файла tsconfig, я полагаю, что я могу как-то объединить их в один?

Я не могу указать отдельные цели компиляции из одного файла tsconfig, но, если вы хотите уменьшить количество повторений в файлах, вы можете определить основной tsconfig.json содержащий общие конфигурации в корне вашего проекта, и иметь свой проект- конкретный tsconfig.json распространяется от мастера.

Есть ли способ для меня определить несколько файлов .d.ts вместо моего типа Filder и сделать мои модели и интерфейсы магазина доступны глобально для всех проектов?

Да, вы можете определить столько файлов .d.ts сколько захотите, и включить их в tsconfig.json или ad hoc для каждого файла с помощью директивы triple-slash:

  • Если вы хотите включить их ad-hoc в каждый файл, вам нужно использовать директиву с тройной косой чертой и передать в качестве аргумента .d.ts к .d.ts.
  • Проще всего сделать их доступными для компилятора через tsconfig. Если вы используете массивы "files" или "include" для указания входных данных компилятора, просто добавьте соответствующие файлы .d.ts в список. Если вы используете только массив "exclude", убедитесь, что вы не исключаете ваши файлы .d.ts.

Вы, вероятно, захотите сохранить рабочие пространства пряжи, поскольку в TS 3.0 нет инструментов, которые могут заменить рабочие пространства.

Надеюсь это поможет.