Я конвертирую процесс сборки grunt + requireJS в webpack. У нас есть что-то вроде этого:
require.config({
shim:{
'popover': {
deps: ['tooltip']
},
'tooltip': {
deps: ['jquery']
}
}
})
Где мы специально говорим, что всплывающая подсказка зависит от jquery, поэтому сначала загрузите jquery. Popover зависит от всплывающей подсказки, поэтому загрузите всплывающую подсказку заранее.
Как мне перевести эту конфигурацию в webpack 4? Я искал в Интернете, пытаясь увидеть, есть ли что-то достаточно похожее. Шиммирование Webpack не зависит от межбиблиотеки. Я тоже ничего не вижу в документации... что меня очень удивило.
Я нашел статьи (https://gist.github.com/xjamundx/b1c800e9282e16a6a18e), которые предложить использовать import-loader для достижения такого эффекта. Итак, мой конфиг такой:
module:{
strictExportPresence:true,
rules:[
{ parser: { requireEnsure: false } },
{ oneOf:[...bunch of stuffs for different file types] },
{ test : /tooltip/, loader: 'imports-loader?$=jquery' },
{ test : /popover/, loader: 'imports-loader?tooltip' }
]
также иметь соответствующие псевдонимы в настройке конфигурации.
ошибка, которую я получаю, - это браузер Constructor undefined в строке "Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype...", поэтому библиотека всплывающих подсказок не загружается до всплывающей подсказки. Я также не вижу никакого нового кода, добавленного веб-пакетом, и я думаю, что это может быть моей первой проблемой, поскольку imports-loader предположительно добавляет указанную библиотеку в модуль popover, верно?
Я точно вижу, что не так с моим подходом, и исчерпал много ресурсов в Интернете. Я уверен, что кому-то приходилось сталкиваться с такой проблемой раньше, пожалуйста, осветите меня. Спасибо!