我的设置
- Typescript NodeJS 项目与
esbuild
- 我提供了一个来自更大的 monorepo 的示例(以展示我的问题),以部署到 AWS lambda
- 我想捆绑,以便我的每个 lambda 具有他们需要的一切(无需配置每个 lambda 以具有正确的
node_modules
),以便我可以保持部署包较小(AWS 设置 250MB 限制)
样品在这里
https://github.com/ziggy6792/bundling-issue
我的问题
当我构建tsc
然后运行yarn build && yarn start:build
它工作正常当我构建esbuild
然后运行yarn esbuild && 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 db 的方式有任何关系(因为该错误仅在我捆绑时发生esbuild
) - 因此,我假设有一些解决方案围绕添加一些配置
esbuild.config.js
来告诉esbuild
如何正确解决某些依赖项或其他东西 - 当我不捆绑节点外部时,我没有收到此错误(请参阅
esbuild.config.js
第 16 行) - 我有一个
working-lock-file
实际上工作正常的分支。但是,如果我删除该锁定文件并yarn install
再次出现错误。我需要能够找到一个合适的修复程序,这样我才能将修复程序带回到我原来的单一存储库中。 - 我也在这里打开了一个问题
- 我过去尝试过捆绑,
webpack
但也遇到了webpack
与依赖解析/摇树相关的问题。我可能会调查parsel
或rollup
下一步。有兴趣了解您认为最适合捆绑 typescript nodejs 项目的方法。
任何帮助将不胜感激
非常感谢,