Проблема связывания проекта Typescript NodeJS с esbuild

#node.js #typescript #bundling-and-minification #esbuild

Вопрос:

Моя Установка

  • Проект типографского текста NodeJS в комплекте с esbuild
  • Я предоставил образец (чтобы продемонстрировать свою проблему) из более крупного монорепо, который будет развернут в AWS lambda
  • Я хотел бы объединить так, чтобы у каждой из моих лямбд было все необходимое (не нужно настраивать каждую лямбду правильно node_modules ), и чтобы я мог сохранять пакеты развертывания небольшими (AWS устанавливает ограничение в 250 МБ).

Образец Здесь

https://github.com/ziggy6792/bundling-issue

моя проблема

Когда я строю с tsc помощью, а затем запускаю yarn build amp;amp; yarn start:build , это работает нормально, Когда я строю с esbuild помощью, а затем запускаю yarn esbuild amp;amp; yarn start:build , я получаю следующую ошибку

  throw new Error('Virtual path "'   name   '" conflicts with a real path in the schema');
        ^

Error: Virtual path "_id" conflicts with a real path in the schema
    at Schema.virtual (/Users/sive/Documents/workspace/bundling-issue/dist/index.js:36802:15)
    at Schema.<anonymous> (/Users/sive/Documents/workspace/bundling-issue/dist/index.js:36880:16)
    at Array.forEach (<anonymous>)
    at Schema.loadClass (/Users/sive/Documents/workspace/bundling-issue/dist/index.js:36866:51)
    at _buildSchema (/Users/sive/Documents/workspace/bundling-issue/dist/index.js:60882:11)
    at buildSchema (/Users/sive/Documents/workspace/bundling-issue/dist/index.js:61292:39)
    at processProp (/Users/sive/Documents/workspace/bundling-issue/dist/index.js:60625:37)
    at _buildSchema (/Users/sive/Documents/workspace/bundling-issue/dist/index.js:60870:41)
    at buildSchema (/Users/sive/Documents/workspace/bundling-issue/dist/index.js:61292:39)
    at getModelForClass (/Users/sive/Documents/workspace/bundling-issue/dist/index.js:61262:41)
 

Диагностика

  • Я предполагаю, что эта проблема каким-то образом вызвана тем, как esbuild происходит связывание/встряхивание дерева, и я не верю, что эта ошибка имеет какое-либо отношение к тому, как я использую базу данных mongo (так как ошибка возникает только тогда, когда я связываюсь с esbuild )
  • Поэтому я предполагаю, что есть какое-то решение, связанное с добавлением некоторой конфигурации esbuild.config.js , чтобы рассказать esbuild , как правильно разрешить некоторую зависимость или что-то в этом роде
  • Я не получаю эту ошибку, когда не связываю внешние компоненты узла (см. esbuild.config.js строку 16).
  • У меня есть филиал working-lock-file , который на самом деле работает нормально. Но если я удалю этот файл блокировки, и yarn install снова появится ошибка. Мне нужно найти правильное решение для этого, чтобы я мог вернуть исправление в свое исходное монорепо.
  • Я тоже открыл здесь проблему
  • Я пробовал в комплекте с webpack в прошлом, но также получил проблемы webpack , связанные с разрешением зависимостей/встряхиванием дерева. Я могу заглянуть в parsel или rollup в следующий раз. Интересно узнать, что, по вашему мнению, лучше всего подходит для объединения проектов typescript nodejs.

Любая помощь будет очень признательна

Большое спасибо,