问题标签 [angular-aot]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - Angular 5 webpack 3 aot
我正在尝试使用 webpack 3 和 angular 5 进行 aot 构建,但是网上有很多教程,没有一个没有问题的完整示例,到目前为止,我有以下配置:(对于那些有疑问的人路径 - 我在 java 应用程序中使用它)
webpack.config.aot.js:
tsconfig.aot.json:
main.aot.ts:
文件结构(简化):
(如果我没有展示相关内容,请告诉我)
所以当我试图使用它来构建它时webpack -p --config ./webpack.config.aot.js
我收到以下错误:
这听起来很合法,因为那里没有 AppModuleNgFactory,但正如我在教程中看到的那样,它应该是在 aot 构建时使用 genDir 生成的,对吗?(请不要说,如果我省略 app/ 文件夹,所以路径看起来是 '../factory/app.module.ngfactory' 我得到同样的错误)
使用@ngtools/webpack 指向 aot 构建中不存在的 AppModuleNgFactory 是否正确?
那个 AppModuleNgFactory 是什么?在 Angular 网站上几乎没有关于它的任何文档
我应该在我的配置中更改什么才能成功生成 aot build?
如果我将主文件更改为引导 AppModule 本身,它会成功构建,但在浏览器中NullInjectorError: No provider for t!
出现错误
没有缩小它显示:No provider for CompilerFactory!
angular - svg 不会在生产模式下加载
我所有的 svg 在开发模式下都能完美运行,只要我运行“ng build --prod --aot”,它们就不会加载。它们都回退到 png 图像。我不知道如何修复它。我有已经在github上,并尝试过
- 绝对路径
- 相对路径
- 绑定与插值
我在用着angular 4.4.3
和angular/cli 1.5.4
html:
另一个例子:
*由于第 3 方包支持,我目前无法升级到 Angular 5
解决方案
感谢 Mathew 的回答,将文件路径添加到 cli assets 文件夹:
angular - Angular 5. 构建 AOT
在 Angular 5 中,我有一个错误使用:ng serve --aot
如果我使用 JIT(at-loader)构建,那么一切正常,但我需要 AOT。
在这里你可以看到讨论:https ://github.com/angular/angular/issues/20639
请帮帮我。
webpack - Angular 5 webpack 3 aot 构建
我们最近从 angular 4 升级到了 angular 5。我们还升级到了 webpack 3。通过摆脱 main.aot.ts 并直接指向 main.ts 来管理我们的 aot 构建工作,但我们无法加载构建. 我们看到“未定义 AppService”错误。有人可以帮忙吗?
main.ts
webpack.config.js
错误
angular - 如何创建与 AOT 兼容的“动态”模块?(静态解析符号值时遇到错误。不支持函数调用。)
我正在构建一个包含许多路由的应用程序,每个路由都定义为一个 NgModule。每个模块都非常相似,因此我想将其抽象为一个可重用的函数,该函数采用一组组件,并构建一个顶层@Component
和@NgModule
.
所以这是其中一个模块:
这是makeModule()
我正在尝试构建的功能:
因此,使用 JIT 编译器可以正常工作,但是一旦我运行ng serve --aot
,它就会失败:
错误中的错误:静态解析符号值时遇到错误。不支持函数调用。考虑将函数或 lambda 替换为对导出函数的引用(原始 .ts 文件中的位置 18:27),解析 C:/Users/IGEN261/code/github/ng-dynamic/src/app/module 中的符号 makeModule -factory.ts,解析 C:/Users/IGEN261/code/github/ng-dynamic/src/app/foo.module.ts 中的符号 FooModule,解析 C:/Users/IGEN261/code/github/ng 中的符号 FooModule -dynamic/src/app/foo.module.ts,解析 C:/Users/IGEN261/code/github/ng-dynamic/src/app/app.module.ts 中的符号 AppModule,解析 C:/Users 中的符号 AppModule /IGEN261/code/github/ng-dynamic/src/app/app.module.ts
我觉得必须有一种方法可以使这与 AOT 保持一致,但我不确定如何。我应该以不同的方式构建我的代码吗?还是我必须放弃此代码库中的任何 DRY 前景以使其与 AOT 兼容?
仅供参考- 完整的项目可在 GitHub 上找到:https ://github.com/mattdsteele/ng-dynamic-aot
angular - 如何在外部配置文件中定义一个变量并在 app.module 中使用它
在带有 Angular 5 的 Ionic 3 中,我试图在一个app.config.ts
文件中定义我所有的外部 API 密钥。
我必须声明一个类,否则我会收到 ngc 引发的 AOT 错误。
这是我的 app.config.ts
我可以将它注入到其他类的构造函数中,但 firebase 必须在app.module.ts
. 所以我尝试执行以下操作//配置
不幸的是,我收到以下错误
Property 'FIREBASE_CONFIG' does not exist on type 'typeof AppConfig'.
如何FIREBASE_CONFIG
在这个app.config
文件中声明并直接使用它app.module
?
我试图像这样在构造函数之前直接初始化变量,但结果相同
任何想法?
angular - Angular 5 - 动态模块配置
我想在我的项目中导入一个从文件加载的特定配置的模块,该配置文件可以在运行时修改,并且在刷新浏览器时应用程序应该加载新的更改。
我现在正在做的是在“forRoot”方法中将配置文件路径发送到模块,并为配置提供指向“load”方法的“useFactory”,这个“load”方法只是使用HTTP GET检索我的配置文件。在我执行“ng build --prod --build-optimizer”之前,“ng build”似乎一切正常,这导致“遇到静态解析符号值时出错”。
我想它的原因是因为我在静态“forRoot”方法中使用了一个带有“useFactory”的提供程序,并且“useFactory”指向一个非静态方法。怎么可能处理这个?这是一个好方法吗?
这就是我的“forRoot”方法和“initConfig”方法的样子:
angular - Angular AOT 编译文件
我正在学习如何 angular (4+) 编译项目 AOT 以创建一个库,并且我对生成的文件有一些疑问。我编写了一个脚本来创建 esm 和 umd 包(.js 和 .map.js)、每个文件 (ngc) 和 package.json 的元数据和类型(我在其中定义了包的入口点)
然而,即使当我将我的包集成到主项目中时 JIT 编译工作正常,我也遇到了 AOT 的问题。为了解决它,我不得不将 ngc 生成的每个 .js 文件复制到 dist 文件夹中。因此,为了恢复,我为我的库提供这些文件:
- 包.json
- esm 包(.js 和 .map.js)
- umd 包(.js 和 .map.js)
- ngc 生成的文件(每个 .ts 文件的 .d.ts、.metadata.json 和 .js)
有人可以确认我们需要 .js 文件吗?是否可以在 AOT 编译期间使用 umd bundle 代替?