Как использовать ссылки Typescript и режим сборки для компиляции моно репо в безсерверный пакет?
Typescript недавно представил новую функцию для работы с monorepos: ссылки. Указав ссылки, вы можете собрать все взаимозависимые пакеты, используя tsc -b
(см. также этот блог)
Это кажется идеальным для использования с большим моно репо, где некоторые пакеты являются безсерверными сервисами. Эти услуги обычно зависят от одного или нескольких пакетов monorepo. Я создал пример здесь:
https://github.com/tommedema/serverless-mono-example
Хотя здание хорошо работает с tsc -b
проблема в том, что безсерверной инфраструктуре необходимо загрузить один артефакт.zip (в моем случае в AWS). При создании службы без сервера, как в этом примере, будут объединяться только скомпилированные файлы ближайших исходных файлов.
Как можно использовать функцию ссылок машинописи для использования с бессерверными моно репо?
1 ответ
Если вам нужно сгенерировать один выходной файл и использовать загрузчик модулей, вы можете использовать outFile
а такжеprepend
,
Если вам нужно несколько выходных файлов, возможно, стоит подать предложение попросить опцию для объединения зависимостей в этом случае; Вы будете вторым человеком, который спрашивал об этом сегодня на Stack Overflow. Изменить: предложение здесь.
Изменить 2: После обширного обсуждения, заключение должно было включить nohoist
опция в окончательном рабочем пространстве Yarn, которая дает нам символические ссылки из node_modules
в другие рабочие места. После того как мы позвоним tsc -b
в последнем рабочем пространстве инструмент упаковки без сервера следует по символическим ссылкам и создает zip-файл с правильной структурой. На уровне TypeScript пакетирование не требуется. Предостережение: Yarn, похоже, устанавливает devDependencies зависимостей в конечной рабочей области, что мне кажется неправильным и приводит к тому, что Serverless без необходимости включает эти модули в комплект.