8

条件に基づいてモジュールをインポートすることは可能ですか? angular 2ユニバーサルアプリがサーバーではなくブラウザーでレンダリングされている場合にのみ、外部モジュールを具体的にインポートします。

この質問は、ブラウザーの機能に依存し、ブラウザーでのみレンダリングできる一部の PrimeNG モジュールに関連しています。カレンダーやその他のコンポーネントは SEO にとってそれほど重要ではないため、サーバー レンダリングでそれらを省略した方がよいでしょう。

現在、サーバー レンダリングをオフにすると、Calendar コンポーネントをレンダリングできます。しかし、app.module.ts に以下のコードを含めてサーバー レンダリングをオンにすると、サーバーは button.js で 'ReferenceError: Event is not defined' というエラーを生成します。

import { CalendarModule } from 'primeng/components/calendar/calendar';
@NgModule({
    ...
    imports: [
        ...,
        CalendarModule
    ]
})

angular によって提供される isBrowser 条件があります。

import { isBrowser } from 'angular2-universal';

しかし、条件付きインポートに使用する方法がわかりません。モジュールに対してそれを行う方法は本当にありますか?

4

3 に答える 3