支持 nest-cli.json 里的 webpack: true 吗?
支持,通过 CLI 插件。
答案
支持:在 nest-cli.json 的 compilerOptions.plugins 中注册 nestjs-docfy,并在 SwaggerModule.createDocument() 之后立刻调用 applyDocfyMetadata(document)。这正是 @nestjs/swagger 自身 CLI 插件在 webpack 下工作所用的机制,它从根本上修复了这个底层限制,而不是绕开它:运行时发现机制(DocfyModule,不带插件的情况下)依然无法工作,因为它依赖 require.cache,而 webpack 会把一切内联进单个 bundle,从不会像每个原始源文件对应一条记录那样填充它。详见 CLI 插件.
SWC builder 呢?
可以,但需要同时设置 "typeCheck": true 和 "builder": "swc" — 在 SWC 下,@nestjs/cli 只通过另一个 hook 调用插件,且依赖类型检查是否开启。不设置的话,插件会静默失效:构建仍然成功,只是不会生成 docfy-metadata.json。完整说明见插件指南的 SWC builder 部分.