Веб-классы экспорта из нескольких файлов ввода
Я использую webpack для создания рамки для использования третьими сторонами. Эта структура должна предоставлять несколько классов ES6. Строя модульным способом, я написал один класс для каждого файла. Я хочу создать все эти файлы вместе и объединить их в определенное пространство имен. Пример:
apples.js export class Apples {...}
oranges.js export class Oranges {...}
webpack.config.js:
module.exports = {
entry: ['./src/apples.js', './src/oranges.js'],
output: {
path: './dist',
filename: 'fruit.js',
library: 'Fruit',
libraryTarget: 'umd'
}
}
Однако, если я загружаю эту библиотеку в браузере и набираю fruit
в консоли, я вижу только объект Oranges под Fruit. В библиотеке отображается только последний файл входа. Разумеется, документы webpack подтверждают это поведение:
Если вы передаете массив: все модули загружаются при запуске. Последний экспортируется. http://webpack.github.io/docs/configuration.html#entry
Моим текущим обходным путем является экспорт всех моих классов из одного файла, но он становится довольно громоздким.
Как мне настроить библиотеку с несколькими файлами ввода, которые все экспортируются? Или я собираюсь сделать что-то неправильно здесь?
Ответы
Ответ 1
Я думаю, вам лучше использовать файл entry.js, чтобы указать, как вы организуете серверные модули.
import Apples from './apples';
import Oranges from './oranges';
export {
Apples,
Oranges
};
Кстати, если вы не хотите писать такие глупые коды по своему усмотрению, используйте Gulp/Grunt для генерации файла "entry.autogenerated.js" по какой-то логике, затем запустите webpack с записью "entry".autogenerated.js'.
Ответ 2
похоже можно просто
export{Apples} from './apples';
export{Oranges} from './oranges';
У меня есть дальнейшая проблема о том, как выставить все модули/классы в каталоге?
Я хочу, чтобы все классы, определенные в этом каталоге, выставлялись автоматически. Почему это необходимо, так это то, что каталог может означать все классы данных или пользовательский интерфейс. Я хочу сформировать комплект данных и пользовательский интерфейс.
Благодарю.