У меня проблемы с динамическим импортом класса.
Я использую псевдоним для этого проекта:
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);
}





используйте React import для импорта вашего файла и используйте file.classname для их вызова
напримерimport claases from '/src';
и используйте ссылку
app = classes.myfile
src в том смысле, что вы должны использовать этот файл, например style.css
Спасибо, но
src- это папка ... Каждый класс находится в своем файле. Или я что-то упустил !?