2016-11-17 17 views
0

私はhttps://angular.io/docs/ts/latest/guide/webpack.htmlの手順に従い、それを稼働させることができました。Angular2 + Webpackでモジュールごとに別々のファイルを作成するにはどうすればいいですか?

しかし、私が望むのはモジュールごとに別々のファイルを持つことです。

モジュールごとにwebpack.common.jsに新しいエントリポイントを追加しようとしましたが、アプリケーションをビルドするときにエラーが返されます。

module.exports = { 
    entry: { 
     'polyfills': './src/polyfills.ts', 
     'vendor': './src/vendor.ts', 
     'app': './src/main.ts', 
     'test': './src/app/test/test.module.ts' 
    } 
    ..... 
} 

これを達成する方法はありますか?

答えて

2

を参照してください詳細については、出力

のノートを取ります。 yourrouteルートが要求されたときに、何かここでのように、

{ 
    path: 'yourroute', loadChildren:() => require.ensure('./yourmodule', (comp: any) => { 
     return comp.default; 
    }), 
    .... 
    ... 
} 

は、yourmoduleon-demandをロードされます。

+0

これを試したときにエラーが発生しました。 'プロパティ '保証'は 'NodeRequire'型には存在しません。 '任意のアイデアを修正する方法は? – PrinceG

+0

Webpackのコンパイルエラーですか? – Thaadikkaaran

+0

私はそれが含まれている入力に問題があると思います..あなたはrequirejs d.tsとnode.d.tsの両方を使用しているかもしれません。必要なd.tsを削除するにはnode.d.tsのみを使用してください – Thaadikkaaran

0

複数のエントリポイントを使用するには、オブジェクトをエントリオプションに渡すことができます。各値はエントリポイントとして扱われ、キーはエントリポイントの名前を表します。

複数のエントリポイントを使用する場合は、デフォルトのoutput.filenameオプションを上書きする必要があります。それ以外の場合、各エントリポイントは同じ出力ファイルに書き込みます。エントリポイントの名前を取得するには[name]を使用します。

例えば

entry: { 
    polyfills: './src/polyfills.ts', 
    vendor: './src/vendor.ts', 
    app: './src/main.ts', 
    test: './src/app/test/test.module.ts' 
} 
output: { 
    path: path.join(__dirname, "dist"), 
    filename: "[name].entry.js" 
} 

は左側に引用符なしであることを試してみてください。また、あなたがルート設定で利用可能なangular2loadChildren方法でのWebPACKのcode-splittingを使用することができますWebpack multiple entry points