为什么ngc部分忽略compileroptions.outDir?是否存在变通方法?

时间:2017-05-16 12:48:29

标签: javascript angular

我有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?

1 个答案:

答案 0 :(得分:1)

问题的原因是ngctsconfig.json中有一些我没有添加的附加选项。

tsconfig.json中的以下设置可以执行我想要的操作。

"angularCompilerOptions": {
    "genDir": "aot",
    "skipMetadataEmit" : true
}