rip*_*nas 5 angular-cli angular
我在ng2应用之间共享模块时遇到问题。这是一个非常简单的方案来演示该问题。一路使用angular-cli:
ng new SharedModule。ng new MyApp。ng serve,出现错误:
静态解析符号值时遇到错误。调用函数“ makeDecorator”,不支持函数调用。考虑使用对导出函数的引用替换函数或lambda ...
省略不重要的内容,非常基本的结构如下所示:
MyApp
|????angular-cli.json
|????package.json
|
???src
??app
|????app.module.ts
|????app-root.component.ts
??
SharedModule
|????angular-cli.json
|????package.json
|
??src
??app
|????app-root.component.ts
|????custom-input.component.ts
|????shared.module.ts
??
Run Code Online (Sandbox Code Playgroud)
这里的关键是MyApp和SharedModule是两个不同的应用程序。如果我尝试将共享模块放入MyApp中(以及导出的自定义组件中),那么它就可以正常工作。不幸的是,目前这不是一个选择,我必须将模块/应用程序分开。也不能从SharedModule创建一个npm软件包并将其安装到MyApp中。
我创建了一个github存储库来演示该问题。为了运行它:
npm install在MyApp和SharedModule文件夹中运行。npm start在MyApp文件夹中运行。百万美元的问题是我该如何进行这项工作?谢谢。
我想说问题在于 Angular CLI 现在默认使用AoT Compile 。
既然如此,您导入的 SharedModule 需要能够进行静态分析,以便它可以与您的 MyApp 一起构建。
当您使用 CLI 创建应用程序时,它并不期望您将其用作共享库,因此不包含*.metadata.jsonAoT 编译器分析它所需的文件。
我可以进一步解释它,但是 Medium 上有一篇关于它的很棒的文章,我在那里了解到了这一点:
希望它也能帮助你。
编辑:
更新 CLI 时,还有几个 Angular 2 库遇到了此问题。举几个可能对您有帮助的问题:
| 归档时间: |
|
| 查看次数: |
5438 次 |
| 最近记录: |