2016-10-25 2 views
10

として、私はtranspiledアプリのためのWebPACKの設定があります。私は、ブラウザで<script>タグからロードするpolyfillmainを持ちたい、とlibとしてエクスポートする輸出WebPACKのエントリポイントの1ライブラリー

entry: { 
    'polyfill': './app/polyfill.js', 
    'lib': './app/lib.js', 
    'main': './app/main.js' 
}, 
output: { 
    path: './bundles', 
    filename: '[name].js', 
    sourceMapFilename: '[name].map' 
}, 
... 

をCommonJSライブラリ。

libは、ノードのバックエンドで使用されますが、appモジュールの一部が含まれているため、他のエントリポイントと一緒に構築されています。アプリケーションが変換されているので、Node内の./appのモジュールはrequireにすることはできません。

ここにはどのようなオプションがありますか?別々のWebpack設定を使用しており、別々のWebpackが唯一実行していますか?

+1

外部を調べることができます:https://webpack.github.io/docs/library-and-externals.html – Shard

+0

@Shard外部ライブラリは、外部ライブラリを読み込むためのものであり、公開するものではありません。 – estus

答えて

2

libappのwebpack configから分離する方が良いでしょう。 libは両方のモジュール(フロントエンドとバックエンド)で使用できるため、両端で使用できるライブラリである可能性があります。

WebPACKの持つライブラリを作成するには、以下の設定で使用することができますが、

entry: { lib: './app/lib' }, 
output: { 
    path: __dirname + '/lib', // path to output 
    filename: outputFile, // library file name 
    library: libraryName, // library name 
    libraryTarget: 'umd', // the umd format 
    umdNamedDefine: true // setting this to true will name the AMD module 
    }, 

これについて詳細にhereを議論しています。

+0

私は1つのWebpackパスでそれを作ることができたと思っていました。それを行う明白な方法がないことはあまりにも悪いです。 – estus

+0

ライブラリとして 'lib'エントリを使いたいので、ライブラリの' output'を得るために別のwebpack設定ファイルになければなりません。 – Thaadikkaaran