我正在尝试在 NX monorepo 中设置 NestJS API,并启用 @nestjs/swagger CLI 插件。
但是,一旦我将插件添加到 webpack 中,我就会收到错误消息,指出打字稿没有发出任何输出。花了两天时间在互联网上查找有关此内容的信息,但找不到任何可行的东西(将选项移至project.json文件中,尝试将其移至匿名插件中,将编译器从tsc更改为swc)。是插件有问题还是我做错了什么?
输出为:
ERROR in ./src/main.ts
Module build failed (from ../../node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/ts-loader/index.js):
Error: TypeScript emitted no output for /home/kowalsky/Documents/testproject/apps/api/src/main.ts.
at makeSourceMapAndFinish (/home/kowalsky/Documents/testproject/node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/ts-loader/dist/index.js:55:18)
at successLoader (/home/kowalsky/Documents/testproject/node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/ts-loader/dist/index.js:42:5)
at Object.loader (/home/kowalsky/Documents/testproject/node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/ts-loader/dist/index.js:23:5)
webpack compiled with 1 error (8456be451fa327b9)
Warning: command "webpack-cli build --node-env=production" exited with non-zero status code
这只是干净的应用程序,刚刚初始化。其中还没有复杂的逻辑。
示例存储库:https://github.com/PatrikValkovic/nestjs-swagger-plugin-failure
我想通了,如果有人有类似问题,请留下问题。
tsconfig 文件配置了
emitDelcarationOnly: true
,导致出现上述错误。
奇怪的是,如果没有插件,编译会按预期工作,并且输出是
dist目录中的
main.js
文件。但是,一旦通过启用插件
new NxAppWebpackPlugin({
// ...options
transformers: [
{
name: '@nestjs/swagger/plugin',
}
]
}),
曾经还必须更改 tsconfig 文件以包含
"emitDeclarationOnly": false
。为什么会这样,老实说我不知道。