Ionic, трубу 'translate' найти не удалось, только в AoT Compiler

У меня проблема с ngx-translate в приложении Ionic, когда я пытаюсь создать производственную версию.

Во время разработки переводы отлично работают с

ionic serve

а также

ionic cordova build android

но если я попытаюсь создать производственную сборку, используя

ionic cordova build android --prod --release

или для PWA

ionic build --prod

Я получаю такие ошибки, как

[17:47:15]  typescript error 
            The pipe 'translate' could not be found ( ... )

Версии:

  • ngx-переводчик: 8.0.0
  • Ионный: 3.9.2
  • Угловой: 5.2.10

Я проверил: https://github.com/ngx-translate/core/tree/v8.0.0 и не могу найти, что делаю неправильно.

В app.module:

// https://github.com/ngx-translate/core#1-import-the-translatemodule
// AoT requires an exported function for factories
export function createTranslateLoader(http: Http) {
    return new TranslateHttpLoader( http, './assets/i18n/', '.json' );
} 

@NgModule( {
    ...
    imports: [
        ...
        TranslateModule.forRoot( {
                loader: {
                    provide: TranslateLoader,
                    useFactory: (createTranslateLoader),
                    deps: [ Http ]
                }
            }
        ),
        ...

И на одной из моих страниц, которая вызывает эту ошибку:

import {  TranslateModule, TranslateService, TranslatePipe } from '@ngx-translate/core';

@NgModule({
    imports: [
        TranslateModule
    ],
    exports: [
        TranslateModule
    ]
})
export class ContactPage { ... }

Поиск через SO дал в основном подсказку для импорта и экспорта TranslateModule на странице, а также импорта TranslatePipe, но оба эти изменения не решили мою проблему. Как мне настроить модуль перевода, чтобы он работал в производственной сборке?


person simirimia    schedule 14.05.2018    source источник


Ответы (1)


ОК, решил. Я добавил оператор импорта и экспорта TranslateModule к классу страницы, но правильным будет добавить его в соответствующий модуль.

В моем примере:

Неправильный:

contact.ts

@NgModule({
    imports: [
        TranslateModule
    ],
    exports: [
        TranslateModule
    ]
})
export class ContactsPage {...}

Верный:

contact.module.ts

@NgModule( {
    ...
    imports : [
        ...
        TranslateModule
    ],
    exports : [
        TranslateModule
    ]

} )
export class ContactsPageModule {
}
person simirimia    schedule 14.05.2018