我正在使用webpack 4.30.0
并尝试捆绑创建几个文件,每个文件都使用名称反映文件名的相应模块导出。
例如:phonecall.js
将导出对象phonecall
,依此类推。使用标准ES6
模块。
所有这些文件组合成Form.js
,以Form
的名称作为全局对象(库)公开。
我希望捆绑软件中使用的所有模块也将作为Form
的属性公开,但是由于任何原因,它只是最后一个可见的模块。在给定的示例中,该值为incident
。因此,在构建之后,我将成为全局可用的唯一对象-Form.incident
。
我相信这是设计使然,但我正在寻找一种方法来针对我的特定情况进行更改。
有什么方法可以使所有子模块在导出的库中可用?
这是我的webpack.config.js
:
const path = require('path');
const webpack = require('webpack');
module.exports = {
entry: {
form: [
'./src/phonecall.js',
'./src/contact.js',
'./src/email.js',
'./src/incident.js',
],
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].js',
library: 'Form',
},
plugins: [
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 1,
}),
],
};
此问题有一个解决方法-创建一个中央文件,该文件将引用所有模块并重新导出,但这是一个附加步骤,并且很容易出错。
这个问题是否有现成的解决方案,如何公开属于捆绑软件的所有模块?