@d-virt

Как сделать динамический require (webpack)?

Здравствуйте.

К сожалению, нервы уже на пределе..... Будь добры, подскажите, пожалуйста....

Имеется две точки входа:
entry: {
        Api : './modules/Api/resources/assets/frontend/app/index',
        Test : './modules/Test/resources/assets/frontend/app/index'
    }, 
output: {
        path: path.resolve(__dirname, 'public/js'),
        filename: '[name].js',
        chunkFilename: '[name].js',
        publicPath: '/js/'
    },
resolve : {
        alias : {
            Api : path.resolve(__dirname, 'modules/Api/resources/assets/frontend/app/index'),
            Test : path.resolve(__dirname, 'modules/Test/resources/assets/frontend/app/index')
        }
    }

P.S. главное обратить внимание на пути в entry!

Из модуля Api.js я хочу подключить Test.js,
НО при помощи
var name = 'Test';

require.ensure([], require => {
    require("./" + name);
});

Уточните, пожалуйста, как это можно реализовать ?

P.S. знаю, есть context, но увы так не работает:
var req = require.context('bundle!./../../../../../', false, /^\.\/.*\.js$/);
req("./" + name + "/resources/assets/frontend/app/require");

пробовал url:
require("url?./" + name);
не канает...

Увы да, вот так работает (код из Api.js):
require.ensure([], require => {
        require('./../../../../../Test/resources/assets/frontend/app');
    });

Но, а если я удалю папку ("./modules/Test"), то при компиляции будет ошибка, а этого хотелось бы избежать. Как бы нет модуля ну и черт с ним, пусть работает то, что есть.
  • Вопрос задан
  • 1116 просмотров
Решения вопроса 1
AMar4enko
@AMar4enko
Если вы прописали alias, то пишите просто
require.ensure(['Test'], require => {
    require('Test');
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы