Webpack仅将捆绑软件中的最后一个文件导出为模块

时间:2019-05-08 09:14:22

标签: javascript webpack

我正在使用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,
    }),
  ],
};

此问题有一个解决方法-创建一个中央文件,该文件将引用所有模块并重新导出,但这是一个附加步骤,并且很容易出错。

这个问题是否有现成的解决方案,如何公开属于捆绑软件的所有模块?

0 个答案:

没有答案