2016-10-25 40 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

相关问题