У меня есть два файла точки входа a.js
и b.js
, которые импортируют непересекающиеся наборы файлов JS.
Вот упрощенная структура папок проекта:
webpack/
controllers/
controller_1.js
controller_2.js
services/
service_1.js
service_2.js
...
controller_1.js
и service_1.js
имеют следующее в первой строке:
// bundle: a
...
...
controller_2.js
и service_2.js
имеют следующее в первой строке:
// bundle: b
...
...
Мои файлы точки входа используют require.context()
для динамического и рекурсивного импорта файлов JS в webpack/
:
export const everything = {};
const requireModule = require.context('.', true, /\.js$/)
requireModule.keys()
.forEach((moduleDir) => {
const moduleExport = requireModule(moduleDir);
const keys = moduleDir.split(sep);
// remove dot from relative path
keys.shift();
// remove filename
keys.pop();
insertNestedKeys(everything, keys, moduleExport);
});
Я бы хотел избежать создания отдельных структур папок для Bundle A и Bundle B и добавления префиксов к именам файлов с именем пакета (например, a_controller_1.js
)
Есть ли способ отфильтровать файлы, кроме как по каталогу и регулярному выражению имени файла во время компиляции? ForEach l oop IIR C запускается на клиенте, поэтому выполнение фильтра по первой строке файлов там не работает.