require.context () фильтр по содержимому файла - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть два файла точки входа 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 запускается на клиенте, поэтому выполнение фильтра по первой строке файлов там не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...