装饰器不支持函数调用,但调用了“AngularFireModule”
Posted
技术标签:
【中文标题】装饰器不支持函数调用,但调用了“AngularFireModule”【英文标题】:Function calls are not supported in decorators but 'AngularFireModule' was called 【发布时间】:2018-06-30 13:00:38 【问题描述】:我使用 Firebase 作为 Angular 5 应用程序的数据库。我能够使用 ng build 构建、运行和部署项目。但是,当我使用 --prod 标志构建时,出现以下错误。
使用:
ng build --prod
我收到以下错误:
“FirebaseModule”函数模板编译期间出现错误 装饰器不支持调用,但“AngularFireModule”是 调用。
我不明白如何配置 AngularFire 模块以使其正常工作。
Firebase.Module.ts:
import NgModule from "@angular/core";
import CommonModule from "@angular/common";
import environment from "../environments/environment"; // Firebase config stored in environment file
import AngularFireAuthModule from "angularfire2/auth";
import AngularFireModule from "angularfire2/angularfire2";
import AngularFirestoreModule from "angularfire2/firestore";
@NgModule(
imports: [
AngularFireModule.initializeApp(environment.firebase), // Error is here
AngularFireAuthModule,
AngularFirestoreModule
],
exports: [AngularFireModule, AngularFireAuthModule, AngularFirestoreModule],
providers: [],
declarations: []
)
export class FirebaseModule
environment.ts(和 environment.prod.ts)
export const environment =
production: false,
firebase:
apiKey: "...",
authDomain: "...",
databaseURL: "...",
projectId: "...",
storageBucket: "",
messagingSenderId: "..."
;
软件包版本
"angularfire2": "^5.0.0-rc.4",
"firebase": "^4.8.1",
AskFirebase
【问题讨论】:
您解决了这个问题吗?我今天在使用 Ionic 3 和 Angular 5 时遇到了同样的问题。 【参考方案1】:ng build --prod
时我遇到了同样的错误,我必须通过更改 AngularFireModule 导入行来解决它
import AngularFireModule from "angularfire2/angularfire2";
到
import AngularFireModule from "angularfire2";
【讨论】:
谢谢,如果它对我有用,我会尝试并标记为解决方案!感谢您的帮助! 这并不能解决问题,它仍然是同样的问题【参考方案2】:我在 Angular 6 中遇到了同样的问题。看起来这是 ng-packagr 的错误。问题报告中的注释表明直接执行ngc时不会出现问题。
https://github.com/dherges/ng-packagr/issues/767
【讨论】:
我能够在安装 @angularfire2@5.0.0-rc.9 后初始化 AngularFireModule,但它需要更改 AngularFireModule 的初始化方式。我删除了对静态方法 initializeApp 的调用并添加了一个提供程序... provide: FirebaseOptionsToken, useValue: firebaseOptions。 firebaseOptions 是传递给 initializeApp 的对象,FirebaseOptionsToken 可从 angularfire2 模块获得。 嘿@scott_Anderson 我认为直接执行时问题不会得到解决。可能发生的情况是您安装了两个版本的ng
。在“直接”构建时使用全局,而 npm 将使用本地 (node_modules) 之一。您能否验证两个版本,以检查版本更改是否解决了这个问题? TY【参考方案3】:
更改构建脚本
来自
ng build --prod
到
ng build --prod --base-href=./ -aot=false
添加-aot=false
解决,但我认为这不是最好的解决方案。它应该将错误报告给 angularfire2 开发团队。
【讨论】:
【参考方案4】:我也遇到了这个错误。 angularfire2 团队已经在 rc9 中修复了这个问题,现在它工作得很好。 只需使用此命令更新库
npm install @angularfire2@5.0.0-rc.9
希望这会有所帮助。
【讨论】:
你能提供更多细节吗? 它现在可以工作了,你提到的版本都是正确的,只需要关闭我的可视化代码并打开它,然后它就可以开始工作了。非常感谢以上是关于装饰器不支持函数调用,但调用了“AngularFireModule”的主要内容,如果未能解决你的问题,请参考以下文章