TS+TypeORM项目dist文件分号报SyntaxError: Unexpected token ;故障排查
错误原因
你编译后生成的JS代码使用了ES2022新增的原生类字段声明语法,该语法在低于16.x版本的Node.js环境中无法被解析,所以会在类字段后的分号位置抛出语法错误。
解决方案
按以下步骤操作即可修复:
- 优先升级你的Node.js版本到16.x或更高的LTS版本,升级完成后重新编译启动服务即可直接兼容该语法。
- 如果暂时不能升级Node版本,修改项目根目录的
tsconfig.json配置:- 将
compilerOptions下的target字段改为ES2021或更低的、你当前Node版本支持的语法标准 - 在
compilerOptions下新增配置"useDefineForClassFields": false,开启后TypeScript会自动将类字段编译为兼容旧版本JS的赋值逻辑,不会再生成单独的类字段声明行
- 将
- 配置修改完成后删除整个
dist文件夹,重新执行tsc编译后再启动服务即可。
额外优化建议
你当前的ormconfig.json中subscribers配置指向的是src目录下的ts源码,如果你是直接运行dist目录下的编译后代码,建议同步修改为./dist/subscriber/**/*.js,避免运行时报找不到订阅器的错误。
内容的提问来源于stack exchange,提问作者Seif A.
相关产品推荐
相关产品推荐

