我有tsconfig.json
,指定outDir
。原因是我想将生成的JavaScript输出与TypeScript源分开。
所以:
"compilerOptions": {
...
"outDir": "target/",
...
}
这非常有效,直到我只使用typescript编译器编译项目。所有生成的javascript输出都在target/
目录中创建。
但是,如果我用角度编译器(ngc
调用它,它本质上是tsc
typescript编译器的包装器),我们还有一个额外的构建步骤。它将模板文件和组件编译成typescript,tsc
将进一步编译为javascript。
这些中间打字稿文件具有*.ngfactory.ts
或*.ngsummary.json
扩展名。
现在我的问题是,ngc
命令仍在我的src/
目录中生成这些文件,完全忽略了outDir
中的tsconfig.json
设置。
这个问题的原因是什么?是否存在任何有用的解决方法?
扩展:关于评论,来自angular-cli 的ng
可以执行此操作。这引出了一个侧面问题,它如何处理ngc?
答案 0 :(得分:1)
问题的原因是ngc
在tsconfig.json
中有一些我没有添加的附加选项。
tsconfig.json
中的以下设置可以执行我想要的操作。
"angularCompilerOptions": {
"genDir": "aot",
"skipMetadataEmit" : true
}