我正在尝试使用Angular 模板编译器来调查它,我知道它处于早期阶段,但 RC5 的文档已经提到它。我创建了一个小的“hello, world”项目,我可以运行ngc
,但它从不生成.ngFactory.ts
文件,我只看到一个.metadata.json
文件。
您可以通过克隆angular 2 quickstart来查看它。运行$(npm bin)/tsc
正常,并将'app'目录中的打字稿编译为带有地图文件的javascript。
接下来我按照说明安装了节点模块(升级打字稿):
npm install --save @angular/compiler-cli typescript@next
@angular/platform-server @angular/compiler
现在运行$(npm bin)/tsc
仍然有效并产生.js
和.js.map
文件。我删除这些文件并运行$(npm bin)/ngc
,它会生成.js
and.js.map
文件以及两个新文件:
app.component.metadata.json
app.module.metadata.jason
看起来这些文件基本上包含来自装饰器的元数据:
{"__symbolic":"module","version":1,"metadata":{"AppComponent":
{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":
{"__symbolic":"reference","module":"@angular/core","name":"Component"},
"arguments":[{"selector":"my-app","template":
"<h1>My First Angular 2 App</h1>"}]}]}}}
但ngc
不会向控制台输出任何输出,而且我看不到任何ngFactory
应该存在的文件。最初 typescript@next 给了我 2.1.0-dev.20160813,包说未满足的对等依赖期望 1.9.0 所以我安装了 1.9.0-dev.20160627-1.0 但我得到了相同的结果。我也试过$(npm bin)/ngc -p .
哪个做同样的事情并$(npm bin)/ngc -p app
给出一堆错误,因为它找不到 core-js 类型(Promise、Set、Map 等)。