У моего приложения реакции есть внешние ресурсы за пределами src/
, поэтому я извлек react-scripts
и отключил ModuleScopePlugin
.
Ссылка на внешнюю библиотеку в resolve.alias
и используется в приложении.
resolve.alias: {
'genlib': path.resolve(fs.realpathSync(process.cwd()), 'lib/genlib/js/src'),
'config': path.resolve(fs.realpathSync(process.cwd()), 'config/dev'),
'messages': path.resolve(fs.realpathSync(process.cwd()), 'config/messages')
}
genlib
- это внешняя библиотека, на которую я пытаюсь сослаться.
Внешняя библиотека - AMD, использующая requirejs.
Один из файлов в библиотеке lazy загружает класс с помощью require.
define('class1', ['require', ...], function(require, ...) {
//
require([variable], function()...)
});
Приведенное выше требование выдает Cannot find module 'xxx'
во время выполнения с webpackEmptyContext
.
Если код require
сверху утешен, то ниже регистрируется вместо функции require. Запутался, почему webpackEmptyContext
утешается вместо webpackContext
функции
ƒ webpackEmptyContext(req) {
var e = new Error("Cannot find module '" + req + "'");
e.code = 'MODULE_NOT_FOUND';
throw e;
}
Я не изменил ничего из webpack.config.js
, за исключением добавления псевдонима и отключения ModuleScopePlugin.
Что еще нужно добавить или изменить в конфигурации для ленивой загрузки модулей amd.
webpack v4.19.1
react-dev-utils v7.0.1