Я использую 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,
}),
],
};
Существует обходной путь для этой проблемы - создатьодин центральный файл, который будет ссылаться на все модули и реэкспортировать их, но это дополнительный шаг и процедура, подверженная ошибкам.
Есть ли какое-либо нестандартное решение этого вопроса, как разоблачитьвсе модули, которые входят в комплект?