Динамический импорт в другую папку

У меня проблемы с динамическим импортом класса.

Я использую псевдоним для этого проекта:

config.resolve.alias = {
    App: path.resolve('./src/'),
    Reactive: path.resolve('./app/')
}

Я хочу импортировать список классов:

const classes = {
    foo: 'App/Foo',
    bar: 'App/Bar'
};
let list = {};
for(var c in classes) {
    (async (k, v, list) => {
        const m = await import(`${v}`);
        list[k] = new m.default();
    })(c, classes[c], list);
}

Этот сценарий вызывается в app, а все импортированные классы - в src.

Ошибка простая: Cannot find module 'App/Foo'.

Когда я проверяю последнюю запись журнала ошибок:

var map = {
    "./OtherClass1": [
        "./app/OtherClass1.js"
    ],
    "./OtherClass1.js": [
        "./app/OtherClass1.js"
    ],
    "./OtherClass2": [
        "./app/OtherClass2.js"
    ],
    "./OtherClass2.js": [
        "./app/OtherClass2.js"
    ]
};
function webpackAsyncContext(req) {
    var ids = map[req];
    if (!ids)
        return Promise.reject(new Error("Cannot find module '" + req + "'."));
    return Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {
        return __webpack_require__(ids[0]);
    });
};
webpackAsyncContext.keys = function webpackAsyncContextKeys() {
    return Object.keys(map);
};
webpackAsyncContext.id = "./app lazy recursive ^.*$";
module.exports = webpackAsyncContext;

Итак, ошибка допустима, потому что map не содержит классов Foo и Bar в src, а только классы в app.

Как я могу указать Webpack для рекурсивной проверки обеих папок?

Но когда я это тестирую, все работает нормально:

for(var c in classes) {
    (async (k, v, list) => {
        const m = await import(`${"App/Foo"}`);
        list[k] = new m.default();
    })(c, classes[c], list);
}
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
550
1

Ответы 1

используйте React import для импорта вашего файла и используйте file.classname для их вызова

напримерimport claases from '/src';

и используйте ссылку

app = classes.myfile

Спасибо, но src - это папка ... Каждый класс находится в своем файле. Или я что-то упустил !?

Thomas Boileau 24.07.2018 17:54

src в том смысле, что вы должны использовать этот файл, например style.css

midnightgamer 25.07.2018 13:12

Другие вопросы по теме