我正在开发一个Angular库,我正在与AOT编译兼容。我已经使用ngc
周围的一些gulp任务完成并运行了,但我更喜欢使用@ngtools/webpack
,因为它允许我使用SASS和PUG为我提供更简单的方法样式和模板。但是,我找不到从其虚拟文件系统中获取声明或元数据文件的方法。有没有办法发出这些文件?
答案 0 :(得分:0)
对于declarations
,您必须更改const lambda =>出口功能。
那是
const declarations = () => [
Component
];
到
export function declarations() {
return [
Components
];
}
然后用tsc
替换package.json中的脚本部分中的ngc
。
现在来自(this comment on github)
所有引用的库必须包含.metadata.json文件以及它们生成的任何.d.ts文件,否则它们将无法与ngc一起正常工作。 .metadata.json文件包含我们需要的信息,该文件位于原始.ts文件中,但未包含在.d.ts文件中。如果我们没有这些信息,我们就无法为图书馆生成工厂。
因此,请确保_ .metadata.json 文件位于其关联的*.d.ts
文件旁边。
由于您使用的是webpack,因此必须首先使用ngc
,然后使用webpack编译代码。
源头
1. Making your Angular 2 library statically analyzable for AoT
2. Getting your Angular 2 library ready for AoT