javascript - Webpack 仅将包中的最后一个文件导出为模块
问题描述
我正在使用 webpack4.30.0
并尝试构建捆绑多个文件,每个文件都导出各自的模块,其名称反映了文件的名称。
例如:phonecall.js
将导出对象phonecall
等。使用标准ES6
模块。
所有这些文件组合成Form.js
一个全局对象(库),名称为Form
.
我希望 bundle 中使用的所有模块也将作为 的属性公开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,
}),
],
};
这个问题有一个解决方法——创建一个中心文件,它将引用所有模块并重新导出它们,但这是一个额外的步骤,并且很容易出错。
这个问题有没有开箱即用的解决方案,如何公开属于捆绑包的所有模块?
解决方案
推荐阅读
- google-cloud-platform - GKE 中的工作负载部署失败并出现错误:构建容器映像失败
- xcode - 我在使用 android studio 通过 ios 模拟器构建我的应用程序时遇到问题。错误是
- javascript - jQuery fadeTo 只触发一次,然后再也不会触发
- java - AsyncTask 在结束 doInBackground 之前检查 MainActivity 中的变量集
- javascript - 如何将多个对象合并为单独的对象
- c - 使用 2 个管道执行 cat|grep|grep
- kotlin - Kotlin:当 CharSequence 数组和 String 数组作为参数时编译错误
- javascript - 我们如何防止在 JavaScript 中在特定时间内一次又一次地单击按钮?
- angular - Angular中的材料表页面大小更改性能问题
- laravel - Laravel 黄昏 你的连接不是私人的