NestJS如何在存在TypeScript错误时启动开发服务器?
NestJS 忽略TypeScript错误启动开发服务器的配置方案
问题背景
CRA提供了TSC_COMPILE_ON_ERROR参数,允许在存在TypeScript编译错误时启动开发服务器。现需在NestJS中实现相同效果:即便源码存在TS编译错误,也能正常启动开发服务器进行功能测试。当前使用命令NODE_ENV=development nest start --debug --watch会因TS错误终止启动,现有tsconfig.json配置如下:
{ "compilerOptions": { "module": "commonjs", "declaration": true, "removeComments": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "allowSyntheticDefaultImports": true, "target": "es2017", "sourceMap": true, "outDir": "./dist", "baseUrl": "./", "incremental": true } }
解决方案
NestJS CLI底层依赖ts-node处理TypeScript代码,只需给ts-node传递跳过类型检查的参数即可实现需求:
修改启动命令,添加
--ts-node-args="--transpile-only"参数:NODE_ENV=development nest start --debug --watch --ts-node-args="--transpile-only"--transpile-only会让ts-node仅完成代码转译,跳过类型校验环节,即便存在TS错误也会生成可执行的JS代码,从而正常启动服务器。可选补充配置(针对
tsc编译场景):
若需要让tsc命令在编译时也忽略错误输出文件,可在tsconfig.json的compilerOptions中添加:"noEmitOnError": false注意:此配置仅影响
tsc直接编译,NestJS开发服务器的watch模式仍以ts-node的参数为准。
注意事项
该方案仅适合临时测试功能使用,TypeScript错误仍可能引发运行时问题,后续需及时修复所有类型错误。
内容的提问来源于stack exchange,提问作者wfcon
相关产品推荐
相关产品推荐

