0

我的设置

  • 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与依赖解析/摇树相关的问题。我可能会调查parselrollup下一步。有兴趣了解您认为最适合捆绑 typescript nodejs 项目的方法。

任何帮助将不胜感激

非常感谢,

4

0 回答 0