问题标签 [angular2-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 - Angular2 angular-cli AOT 支持
操作系统?
Mac OSX 优胜美地
版本。
angular-cli:1.0.0-beta.21 节点:6.3.0 操作系统:darwin x64
失败给出的日志。(有很多)
导出的变量“slideInPartial”具有或正在使用来自外部模块“/node_modules/@angular/core/src/animation/metadata”的名称“AnimationEntryMetadata”,但无法命名。)
提及任何其他可能有用的细节。
tsconfig.aot.json:
{
"declaration": false,
"compilerOptions": {
"target": "es5",
"module": "es2015",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"suppressImplicitAnyIndexErrors": true,
"pretty": true,
"allowUnreachableCode": false,
"allowUnusedLabels": false,
"noImplicitAny": false,
"noImplicitReturns": false,
"noImplicitUseStrict": false,
"noFallthroughCasesInSwitch": true,
"noEmitOnError": true,
"outDir": "./dist/unbundled-aot",
"types": [
"node",
"jasmine"
],
"paths": {
"angular-cli/*": [ "./packages/angular-cli/*" ],
"@angular-cli/ast-tools": [ "./packages/ast-tools/src" ],
"@angular-cli/base-href-webpack": [ "./packages/base-href-webpack/src" ],
"@ngtools/webpack": [ "./packages/webpack/src" ]
}
},
"exclude": [
"node_modules",
"dist",
"packages/angular-cli/blueprints/*/files/**/*",
"dist/**/*",
"node_modules/**/*",
"tmp/**/*"
],
"angularCompilerOptions": {
"genDir": "aot",
"skipMetadataEmit": true
}
}
执行命令:
ng serve --aot -p src/tsconfig.aot.json
tsconfig.aot.json 中的任何更改都不会影响任何内容。任何想法或帮助将不胜感激。
谢谢
angular - AOT编译——forRoot等func调用问题
"Error encountered resolving symbol values statically. Function calls are not supported. Consider replacing the function or lambda with a reference to an exported function, resolving symbol DeclarantModule"
尝试编译我的应用程序时出现错误。当模块具有forRoot
或StoreModule.provideStore(rootReducer)
函数调用时会发生这种情况。
如何解决?为什么会这样?我不明白,我认为它是使用配置导入模块的原生 angular 2 函数。
angular - 使用 angular cli 部署 angular 2 - 我需要托管哪些文件?
我正在使用 angular cli v1.0.0-beta.21 并使用 ng -b -prod -aot 我得到了预期
- 索引.html
- style.bundle.css
- main.bundle.js
有一些文件我不知道它们的用途,希望你能启发我!
- inline.bundle.js
- style.bundle.js
- 很多 .map 文件
- main.bundle.js.gz
特别是我想知道我是否需要那些 .map 文件,因为它们确实是出价的(main.bundle.map 就像 3.3MB)
谢谢!
angular - Angular 2 AOT 构建在文件中内联和生成源映射
我正在为 Angular 2 应用程序进行生产构建,并尝试使用 Angular 2 AoT 构建过程来减小包大小(在此处记录)
我通过 aot 编译器 CLI 和汇总 CLI 使构建工作,并且得到了我期望的输出。我的 bundle.js 文件约为 2k。并且有一个随附的源映射文件。耶!
接下来,我尝试将汇总合并到我现有的 gulp 构建中。一切正常,只是源映射在捆绑包中内联,使其超过 2MB。此外,还会生成一个源映射文件。当我手动删除内联源映射时,我的包大小下降到 ~2k。
我的问题是如何在没有内联源映射的情况下生成我的 bundle.js?
我尝试过的事情:搜索 SO、搜索Angular2 文档、汇总流文档和gulp-sourcemap 文档。我还没有找到任何专门解决这个问题的东西。
下面是相关的配置文件
AoT 特定的 tsconfig 文件(tsconfig-aot.json):
汇总配置(我尝试注释掉 dest 和 sourceMapFile 文件路径以查看是否会导致 gulp 关闭,但没有效果):
和吞咽文件:
编辑:我确实找到了一个解决方法,让 gulp 使用 CLI 执行汇总。不过,我仍然想知道我在 gulp 或 rollup 配置中做错了什么。
javascript - 错误 1068:类型 angular 2 (AOT) 上不存在属性
我是 Angular 2 的新手,我正在制作“用户注册”表单,但它在电话号码验证中的“类型上不存在属性”中显示错误。
我在 JIT 和 AOT 中编译。
在 JIT 编译器中显示错误消息并运行我的用户注册表单它工作正常。但是当我用 AOT 编译时显示编译错误。
我正在阅读 Angular 2 表单验证官方文档,这里是链接Angular 2 表单验证
下面是我的 Html 表单和编译器输出
HTML 表单
AOT 输出
提前致谢
维克拉姆
telerik - Telerik Angular2汇总问题
使用StackOverflow 问题Grid 模块中指定的 Telerik Grid 模块和汇总设置无法获取“orderBy”。GridModule、SharedModule、IntlService 等其他模块正在得到解决。
这是我命名的导出:
angular - 使用桶进行aot编译+汇总后找不到Angular 2服务
我有一个大型 angular2 应用程序 - 在 JIT 模式下完美运行。但是,在进行 AOT 编译和汇总后,应用程序不再工作。
我收到的错误是
经过调查,我发现我的桶文件是导致此问题的原因。如果我像这样导入服务:
我得到了错误。但是,如果我将导入语句更改为:
一切正常...
任何人都知道如何解决这个问题?我不想停止使用桶文件...
angular - 如何发布包以在 AoT angular2 应用程序中使用
我有一个用 angular2 typescript 编写的代码,这是一个使用服务和组件导出的模块
我想在不同的 angular2 应用程序中使用这个 MyModule,所以我用这个 tsconfig 和脚本发布了它
包.json
在使用来自angular2 种子的种子创建的其他 angular2 应用程序中,我已经安装了该软件包,尝试使用它一切正常,因为我不在 AOT 中运行该应用程序,但在 AoT 中它有错误
错误:模块“AboutModule”导入的意外值“MyModule”
我有几个问题:
- 我应该如何发布包/ tsconfig "module" = es2015 / systemjs / commonjs 内部有什么不同
- 模块发布类型是否与如何在 angular2 中使用包有关 - 即,如果我使用 systemjs 发布,我可以在 angular2 AoT 应用程序中使用这个包吗?
- 是否有任何最佳实践如何发布 angular2 共享模块并在 diff 应用程序中使用它?
angular - Angular 2 - 为 JIT 和 AoT 导入外部库
我正在尝试将我的代码库配置为能够同时执行 JiT 和 AoT,以便我可以将 JiT 用于本地开发,将 AoT 用于生产。我在这里遵循了角度文档,并成功地让两者单独工作。
我面临的问题是当我尝试导入外部库时,特别是 moment-js。
对于 JiT,我使用的是 SystemJS,其配置为
然后在打字稿中导入一个组件,我可以这样做
这适用于本地开发。
但是,当我尝试使用汇总进行 AoT 编译时,出现Cannot call a namespace ('moment')
编译错误。我在这个线程之后解决了这个问题,所以在对汇总配置进行了几次更改之后,组件中的导入语句应该是
这对于 AoT 和汇总非常有效,但现在 SystemJS 无法理解这一点。
我似乎无法跳出循环。我可以让一个工作,但不能同时工作。有没有办法让 SystemJS 理解汇总所需的导入语句?我认为反过来是不可能的。
编辑:
我确实找到了一种至少让它工作的方法,但这并不完全理想。我没有导入它,而是将其声明为any
,然后使用脚本标记从外部加载到库中。所以现在组件是
正如我所说,这并不理想,因为这不允许我将 moment 与 AoT 构建捆绑在一起,并且它还强制 typescript 解释'moment' var,因为any
现在它不知道它的类型。所以这仍然不能完全回答我的问题,但这至少有效。
angular - 在 Angular 2 应用程序开始使用 AoT 之前从数据库加载配置
在加载我的 Angular 2 应用程序之前,我试图从数据库中获取一些配置选项。Angular 应用程序需要等待数据加载后才能启动,因为应根据这些配置选项限制对某些组件的访问。
所以我创建了一个 ConfigurationService 来从后端获取数据,并且我试图在启动应用程序之前使用根模块中的 app_initializer 来调用 configurationservice。我已经设法在几个月前创建的 Angular 应用程序(角度 RC4)中做到了这一点,并尝试以同样的方式做这件事。
app.module.ts - 第一次尝试
这导致了以下错误:
我认为这与我正在使用的 AoT 编译器有关。我已经用工厂替换了 lambda 表达式。
app.module.ts - 第二次尝试
配置.service.factory.ts
这实际上是使用配置服务从后端获取数据,但在启动应用程序之前不会等待承诺解决。它在用户从主页开始(每个人都可以访问)然后导航到非管理员用户限制的组件时工作。但是当用户刷新受限制的页面时,在加载配置之前会触发 OnInit(我确定用户是否有权访问)。就我而言,这导致用户被拒绝访问他们应该有权访问的页面。
配置.service.ts
组件实现
我现在完全没有想法,我一直在寻找解决方案,但只设法找到推荐 lambda 选项的人,这对我不起作用。