我可以使用@ ngtools/webpack发出打字/声明(.d.ts)和装饰元数据(.metadata.json)文件吗?

Dan*_*fer 7 webpack angular-cli angular2-aot angular

我正在开发一个Angular库,我正在与AOT编译兼容.我已经开始使用一些gulp任务了ngc,但是我更喜欢使用,@ngtools/webpack因为它允许我使用SASS和PUG作为我的样式和模板的更直接的方法.但是,我找不到从其虚拟文件系统中获取声明或元数据文件的方法.有没有办法发出这些文件?

Sag*_*r V 0

对于declarations,您必须更改 const lambda => export function。

那是

const declarations = () => [
  Component
];
Run Code Online (Sandbox Code Playgroud)

export function declarations() {
  return [
    Components
  ];
}
Run Code Online (Sandbox Code Playgroud)

然后将package.json 中的tscin scriptngc部分替换为.

现在来自(github上的评论

所有引用的库必须包含 .metadata.json 文件以及它们生成的任何 .d.ts 文件,否则它们将无法与 ngc 一起正常工作。.metadata.json 文件包含原始 .ts 文件中我们需要的信息,但未包含在 .d.ts 文件中。如果我们没有这些信息,我们就无法为库生成工厂。

  • 因此,请确保 _ .metadata.json文件位于其关联*.d.ts文件旁边。

  • 由于您使用的是 webpack,因此必须ngc先使用 webpack,然后再对编译后的代码使用 webpack。


来源
1.让您的 Angular 2 库可静态分析 AoT
2.让您的 Angular 2 库为 AoT 做好准备