nest-cli.jsonでwebpack: trueにしていても動作しますか?
はい。CLIプラグイン経由で動作します。
回答
はい。nestjs-docfyをnest-cli.jsonのcompilerOptions.pluginsに登録し、SwaggerModule.createDocument()の直後にapplyDocfyMetadata(document)を呼び出してください。これは@nestjs/swagger自身のCLIプラグインがwebpack下で動作するために使っているのと同じメカニズムで、回避策ではなく根本的な制約そのものを修正します。ランタイム検出(プラグインなしのDocfyModule)は依然として動作しません。それはrequire.cacheに依存しており、webpackはすべてを単一のバンドルにインライン化し、元のソースファイルごとに1エントリーを埋めることは決してないためです。参照: The CLI plugin.
SWCビルダーの場合は?
はい、ただし"builder": "swc"と一緒に"typeCheck": trueを設定する必要があります — SWCでは@nestjs/cliが別のフックでしかプラグインを呼び出さず、型チェックが有効な場合に限られます。設定しないとプラグインは黙って何もしません(ビルド自体は成功しますが、docfy-metadata.jsonは生成されません)。詳しい説明はプラグインガイドのSWCビルダーのセクション.