2016-10-25 39 views
10

我有transpiled應用的WebPack配置:出口的WebPack入口點爲庫一個

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

我想有polyfillmain<script>標籤在瀏覽器上加載,並lib導出爲CommonJS庫。

lib由Node後端使用,但包含一些app模塊,因此它與其他入口點一起構建)。該應用程序正在進行轉發,因此在Node中不可能僅使用./app中的require模塊。

這裏有什麼選擇?是使用單獨的Webpack配置和獨立的Webpack運行唯一的?

+1

你可能想看看外部:https://webpack.github.io/docs/library-and-externals.html – Shard

+0

@Shard Externals用於加載外部庫,而不是發佈它們,不是嗎? – estus

回答

2

我認爲最好將libapp的webpack配置中分離出來。由於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

我一直希望能夠通過一個Webpack通行證。太糟糕了,沒有明顯的方法來做到這一點。 – estus

+0

既然你想使用'lib'作爲一個庫,它必須在單獨的webpack配置中,這樣你才能得到一個庫的輸出。 – Thaadikkaaran

相關問題