我搜索了ng2-bootstrap Github项目的现有问题,但找不到类似的东西。
我正在使用Angular 2 (2.1.0)、TypeScript 2 (2.0.3)、Webpack 2 (2.1.0-beta.25)应用。构建链包含开发构建和生产构建,使用AOT和uglifyjs。应用依赖于ng2 bootstrapTabsModule
和DropdownModule
(1.1.14)。
开发构建运行良好。当使用AOT构建时,使用以下命令失败:
TypeError: providers.forEach is not a function
at CompileMetadataResolver.getProvidersMetadata (D:myprojnode_modules@angularcompilerbundlescompiler.umd.js:14292:21)
at CompileMetadataResolver.getNgModuleMetadata (D:myprojnode_modules@angularcompilerbundlescompiler.umd.js:14051:60)
at D:myprojnode_modules@angularcompilerbundlescompiler.umd.js:12801:47
at Array.forEach (native)
at analyzeModules (D:myprojnode_modules@angularcompilerbundlescompiler.umd.js:12800:17)
at OfflineCompiler.analyzeModules (D:myprojnode_modules@angularcompilerbundlescompiler.umd.js:12826:18)
at CodeGenerator.codegen (D:myprojnode_modules@angularcompiler-clisrccodegen.js:122:47)
at codegen (D:myprojnode_modules@angularcompiler-clisrcmain.js:7:81)
at Object.main (D:myprojnode_modules@angulartsc-wrappedsrcmain.js:30:16)
at Object.<anonymous> (D:myprojnode_modules@angularcompiler-clisrcmain.js:14:9)
我尝试在node_modulesng2-bootstrapcomponents
内摆弄本地副本,分别在xxx.module.js
和xxx.module.metadata.js
中添加providers: []
,但没有运气。但我不确定这是否构成任何证据。
有人尝试过AOT和最近的ng2引导版本吗?
在把控制台日志添加到@angular compiler.umd.js
之后,问题就出来了——我想说清楚——这是与ng2-bootstrap完全无关的
最近更改后,定义主应用程序模块的代码如下:
import { appProviders } from '../app/providers';
// ...
@NgModule({
providers: [appProviders],
// ...
:
import { appProviders as providers } from '../app/providers';
// ...
@NgModule({
providers,
// ...
基本上是传递一个数组(错误),而不是数组的数组(正确)。
错误消息似乎对获得根本原因的良好上下文没有太大帮助,所以我把这个线程留在这里,以防它可能有帮助。