如何在Node.js中编译带.ts后缀导入的TypeScript文件?
TypeScript编译含.ts后缀导入文件的解决方法
你的核心问题在于tsconfig.json的配置冲突:allowImportingTsExtensions选项仅适用于不生成编译文件的场景(比如直接用ts-node运行TS代码),而你需要编译出.js文件给Node.js使用,noEmit: true会直接阻止编译器生成输出文件,导致tsc命令无效。
解决步骤如下:
修改
tsconfig.json配置:
移除allowImportingTsExtensions,将noEmit改为false,同时可根据Node.js环境添加必要的编译选项(比如目标版本和模块规范):{ "compilerOptions": { "strict": true, "noEmit": false, "target": "ES2020", "module": "CommonJS" } }调整导入语句:
去掉导入路径中的.ts后缀,TypeScript编译器会自动关联对应文件,并在编译时处理为正确的.js路径:import { someFunction } from './otherfile';重新执行编译命令:
运行tsc命令,编译器会在对应目录生成编译后的.js文件,你即可直接在Node.js环境中运行这些文件。
补充:如果想保留.ts后缀导入且不编译直接运行TS代码,可以使用ts-node或tsx工具,但这不符合你需要生成.js文件的需求,因此不适用当前场景。
内容的提问来源于stack exchange,提问作者komote7665
相关产品推荐
相关产品推荐

