2016-10-10 25 views
3

unterstützt, wenn für ein ionisches 2 RC0 Projekt ein ionic build tun ich die folgende Fehlermeldung erhalten:ionische Build gibt Fehler: Funktionsaufrufe sind nicht

[13:26:17] ngc: Error: 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 AppModule in /Users/billnoble/Documents/YHistory-App3/.tmp/app/app.module.ts, resolving symbol AppModule in /Users/billnoble/Documents/YHistory-App3/.tmp/app/app.module.ts 
at simplifyInContext (/Users/billnoble/Documents/YHistory-App3/node_modules/@angular/compiler-cli/src/static_reflector.js:469:23) 
at StaticReflector.simplify (/Users/billnoble/Documents/YHistory-App3/node_modules/@angular/compiler-cli/src/static_reflector.js:472:22) 
at StaticReflector.annotations (/Users/billnoble/Documents/YHistory-App3/node_modules/@angular/compiler-cli/src/static_reflector.js:61:36) 
at _loop_1 (/Users/billnoble/Documents/YHistory-App3/node_modules/@angular/compiler-cli/src/codegen.js:53:54) 
at CodeGenerator.readFileMetadata (/Users/billnoble/Documents/YHistory-App3/node_modules/@angular/compiler-cli/src/codegen.js:66:13) 
at /Users/billnoble/Documents/YHistory-App3/node_modules/@angular/compiler-cli/src/codegen.js:100:74 
at Array.map (native) 
at CodeGenerator.codegen (/Users/billnoble/Documents/YHistory-App3/node_modules/@angular/compiler-cli/src/codegen.js:100:35) 
at codegen (/Users/billnoble/Documents/YHistory-App3/node_modules/@angular/compiler-cli/src/main.js:7:81) 
at Object.main (/Users/billnoble/Documents/YHistory-App3/node_modules/@angular/tsc-wrapped/src/main.js:30:16) 

Wer weiß, was ich tun müssen, um diesen Fehler zu beheben?

sieht Meine app.modules.ts-Datei wie folgt:

import { NgModule } from '@angular/core'; 
 
import { IonicApp, IonicModule } from 'ionic-angular'; 
 
import { Camera } from 'ionic-native'; 
 
import { Http, XSRFStrategy, CookieXSRFStrategy } from '@angular/http'; 
 
import { Storage } from '@ionic/storage'; 
 
import { FormsModule } from '@angular/forms'; 
 
import { MyApp } from './app.component'; 
 
import { AboutPage } from '../pages/about/about'; 
 
import { HomePage } from '../pages/home/home'; 
 
import { TabsPage } from '../pages/tabs/tabs'; 
 
import { LoginPage } from '../pages/login/login'; 
 
import { PhotoPage } from '../pages/photo/photo'; 
 
import { AboutPage } from '../pages/about/about'; 
 
import { GalleryPage } from '../pages/gallery/gallery'; 
 
import { SubmittedPage } from '../pages/submitted/submitted'; 
 
import { PhotoPage } from '../pages/photo/photo'; 
 
import { ResetPasswordPage } from '../pages/reset-password/reset-password'; 
 
import { SignupPage } from '../pages/signup/signup'; 
 
import { DjangoAuth } from '../providers/djangoAuth'; 
 
import { ImageData } from '../providers/imageData'; 
 

 
@NgModule({ 
 
    declarations: [ 
 
    MyApp, 
 
    AboutPage, 
 
    HomePage, 
 
    TabsPage, 
 
    LoginPage, 
 
    PhotoPage, 
 
    GalleryPage, 
 
    SubmittedPage, 
 
    ResetPasswordPage, 
 
    SignupPage 
 
    ], 
 
    imports: [ 
 
    IonicModule.forRoot(MyApp, [ 
 
     Http, 
 
     DjangoAuth, 
 
     ImageData, 
 
     FormsModule, 
 
     {provide:XSRFStrategy, useValue: new CookieXSRFStrategy('csrftoken', 'X-CSRFToken')}]) 
 
    ], 
 
    bootstrap: [IonicApp], 
 
    entryComponents: [ 
 
    MyApp, 
 
    AboutPage, 
 
    HomePage, 
 
    TabsPage, 
 
    LoginPage, 
 
    PhotoPage, 
 
    GalleryPage, 
 
    SubmittedPage, 
 
    ResetPasswordPage, 
 
    SignupPage 
 
    ], 
 
    providers: [ 
 
    DjangoAuth, 
 
    ImageData, 
 
    Storage, 
 
    Camera 
 
    ] 
 
}) 
 

 
export class AppModule {}

+0

Sie sollten die Komponenten nacheinander entfernen, um das Problem zu finden. Sobald Sie das Problem isoliert haben, wäre es einfacher, es zu lösen. –

Antwort

1

Sie sollten den Anruf innerhalb der Einfuhr von entfernen:

{provide:XSRFStrategy, useValue: new CookieXSRFStrategy('csrftoken', 'X-CSRFToken')}

und

factoryFunction zu erklären bewegen
export function CookieXSRFStrategyFactory(http:Http) { 
return new CookieXSRFStrategy('csrftoken', 'X-CSRFToken'); 

}

und in Ihrem bieten: Schreibe:

provide:XSRFStrategy, useValue: CookieXSRFStrategyFactory 
1

Dies ist jedem zu helfen, später hierher kam. Nachdem ich Angular aktualisiert habe, stieß ich auf ein ähnliches Problem, als CookieXSRFStrategy() direkt vom Anbieter angerufen wurde.

Die obige Antwort funktionierte nicht für mich in Angular v2.4.7, aber das Folgende tat. Beachten Sie die Verwendung von useFactory, um das Objekt zu referenzieren.

import { XSRFStrategy, CookieXSRFStrategy } from '@angular/http'; 

export function CookieXSRFStrategyFactory() { 
    return new CookieXSRFStrategy('csrftoken', 'X-CSRFToken'); 
} 

export const AppCSRF = { 
    provide: XSRFStrategy, 
    useFactory: CookieXSRFStrategyFactory, 
}; 

Dann Liste AppCSRF mit dem Rest Ihres Moduls Anbieter.

providers: [ 
    ... 
    AppCSRF, 
    ... 
], 
Verwandte Themen