#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.
Любая помощь будет очень признательна
Большое спасибо,