如何同时使用tsc的-b(build)与--outdir参数?
解决TypeScript编译命令冲突问题
针对tsc -b --outdir报错的问题
原因
--build(缩写-b)模式用于增量编译或多项目依赖编译,它会严格读取tsconfig.json中的配置。命令行直接传入--outdir会和配置文件的输出设置冲突,因此被TypeScript编译器禁止。未指定正确输出目录时,TypeScript默认会将编译产物放在源文件所在的src目录。
解决方法
- 编辑项目根目录的
tsconfig.json,在compilerOptions中添加或修改outDir字段,指定目标输出目录:
{ "compilerOptions": { "outDir": "./folderName", // 其他编译配置... } }
- 直接执行编译命令:
tsc -b
此时编译器会按照配置文件中的outDir输出产物,不会再抛出冲突错误。
针对tsc --noEmit的相关问题
如果遇到使用tsc --noEmit时仍有编译产物生成(或和build模式冲突)的情况,按以下方式处理:
- 仅做类型检查不生成文件:直接执行
tsc --noEmit,确保tsconfig.json中没有强制设置"noEmit": false; - 在build模式下禁用输出:修改
tsconfig.json的compilerOptions,添加"noEmit": true,然后执行tsc -b。不建议在命令行同时传入-b和--noEmit,避免配置冲突。
内容的提问来源于stack exchange,提问作者blub
相关产品推荐
相关产品推荐

