2017-04-11 17 views
5

Một trong các module tính năng của tôi có nội dung này:góc 4 - Lỗi gặp phải giải quyết các giá trị biểu tượng tĩnh

declare function require(name: string); 

@NgModule({ 
imports: [ 
// other modules here 
ChartModule.forRoot(
    require('highcharts'), 
    require('highcharts/highcharts-more'), 
    require('highcharts/modules/funnel'), 
    require('highcharts/modules/heatmap') 
) 

Nó chạy tốt tại địa phương nhưng khi tôi xây dựng nó với cờ prod nó không thành công. Lỗi tôi nhận được là:

ERROR in Error encountered resolving symbol values statically. Reference to a non-exported function (position 26 :18 in the original .ts file), resolving symbol ....

ERROR in ./src/main.ts Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in ...

Bất kỳ ý tưởng nào về cách giải quyết vấn đề này?

+1

Tôi có một vấn đề tương tự, nhưng với 'const' xuất khẩu – KarolDepka

Trả lời

1

Tôi không thể chỉ cho bạn đường chính xác, vì bạn không bao gồm trang trí đầy đủ @NgModule. lỗi này là bình thường trong mảng providers, khi bạn có một cái gì đó như thế này:

@NgModule({ 
// imports, exports and declarations 
    providers: [{ 
    provide: XSRFStrategy, 
    useValue: new CookieXSRFStrategy('RESPONSE_TOKEN', 'RESPONSE_TOKEN') 
    }] 
}) 
export class MyModule {} 

Bạn không thể sử dụng AOT khi bạn có một cuộc gọi chức năng inline như thế. Vì vậy, thay vào đó, hãy thay thế useValue bằng useFactory và chức năng đã xuất (như đã nêu trong thông báo lỗi của bạn).

Dưới đây là phiên bản AOT-an toàn niêm yết đầu tiên của tôi:

export function xsrfFactory() { 
    return new CookieXSRFStrategy('XSRF-TOKEN', 'X-XSRF-TOKEN'); 
} 
@NgModule({ 
// imports, exports and declarations 
    providers: [{ 
    provide: XSRFStrategy, 
    useFactory: xsrfFactory 
    }] 
}) 
export class MyModule {} 
Các vấn đề liên quan