使用Nest.js SWC编译TSX文件失败,无产物生成求助
排查Nest.js SWC编译TSX无产物问题
- 确认Nest.js编译文件扩展名配置
Nest.js默认用SWC编译时,可能仅监听.ts文件,未包含.tsx。需在nest-cli.json里明确指定要处理的扩展名:
{ "compilerOptions": { "builder": "@nestjs/swc", "extensions": [".ts", ".tsx"], // 必须添加.tsx // 保留其他原有配置 } }
- 修正SWC配置的JSON语法错误
你的.swcrc中parser对象的dynamicImport字段后多了一个逗号,会导致JSON解析失败,SWC可能直接忽略配置:
// 原错误配置 "parser": { "syntax": "typescript", "tsx": true, "decorators": true, "dynamicImport": true, // 删掉此处多余的逗号 }, // 修正后 "parser": { "syntax": "typescript", "tsx": true, "decorators": true, "dynamicImport": true },
- 检查TSConfig的TSX支持设置
tsconfig.json需正确配置JSX相关选项,否则SWC无法识别TSX文件:
{ "compilerOptions": { "jsx": "react-jsx", // 按需选择react/react-jsxdev "allowJsx": true }, "include": ["src/**/*.ts", "src/**/*.tsx"] // 确保包含所有TSX文件 }
确认TSX文件未被忽略
检查项目中是否存在.swcignore或.gitignore排除了TSX文件,同时确保TSX文件放在默认编译的src目录下,或编译命令指定了正确的源路径。验证SWC依赖版本兼容性
@nestjs/swc与@swc/core版本不匹配也可能导致问题,可尝试重新安装依赖:
rm -rf node_modules package-lock.json npm install
内容的提问来源于stack exchange,提问作者Kerem Kusmezer
相关产品推荐
相关产品推荐

