如何配置TSConfig实现.ts文件对应编译到同应用的js目录?
解决方法
推荐方案:使用TypeScript项目引用(多tsconfig)
这种方式能精准控制每个应用的编译路径,符合TypeScript最佳实践,VSCode也能完美支持。
- 创建根目录
tsconfig.json:
{ "files": [], "references": [ { "path": "./app_1" }, { "path": "./app_2" } ] }
- 在
app_1目录下创建tsconfig.json:
{ "compilerOptions": { "target": "ES6", // 根据需求调整JS目标版本 "module": "CommonJS", // 匹配你的模块系统 "strict": true, // 开启严格类型检查,可按需关闭 "rootDir": "./ts", // 指定TS源码的根目录 "outDir": "./js", // 指定编译后JS文件的输出目录 "skipLibCheck": true }, "include": ["./ts/**/*"], // 包含ts目录下所有文件 "exclude": ["./js/**/*"] // 排除已编译的JS文件 }
在
app_2目录下复制相同的tsconfig.json:
确保rootDir和outDir指向各自的ts/js文件夹即可。在VSCode中编译:
- 打开命令面板(Ctrl+Shift+P),输入
TypeScript: Build All,可一次性编译两个应用的TS文件到对应JS目录。 - 若需要自动编译,输入
TypeScript: Watch All,之后修改TS文件会自动同步编译到对应JS目录。
单配置方案(仅作参考,需配合文件移动)
如果不想使用多个配置文件,可尝试以下方式,但编译后需要手动或脚本将JS文件从ts目录移到js目录:
{ "compilerOptions": { "target": "ES6", "module": "CommonJS", "strict": true, "rootDir": "./", "outDir": "./", "skipLibCheck": true }, "include": [ "app_1/ts/**/*", "app_2/ts/**/*" ], "exclude": [ "node_modules", "**/js/**/*" ] }
编译后TS文件会在原ts目录生成对应JS文件,需手动移动到同级js目录,也可编写简单脚本自动处理。
内容的提问来源于stack exchange,提问作者Eddysanoli
相关产品推荐
相关产品推荐

