上下文:
出于某种晦涩的原因,我们通常将这些排除在共享组件中(在.gitignore
中):
# Ngc generated files
**/*.ngfactory.ts
**/*.metadata.json
虽然不导出这些文件仍然允许使用中的应用程序在JIT模式下工作,但这阻碍了我们最近在AOT中的尝试。经过一些研究,我们最终认为我们需要这些来使AOT正常工作。现在,我们有了那个答案,不过我们还有更多问题。
问题:
推荐的angularCompilerOptions
组件库是什么?
那服务库(没有模板)呢?
例如,它在AOT角度指南中说:
如果您希望ngc立即报告语法错误,而不是生成带有错误的.metadata.json文件,请在tsconfig中设置strictMetadataEmit选项。
"angularCompilerOptions": { ... "strictMetadataEmit" : true }
Angular库具有此选项,以确保所有Angular .metadata.json文件都是干净的,并且最佳实践是在构建自己的库时执行相同的操作。
.metadata.json
报告错误的含义是什么?为什么将其视为不良做法?研究: