Я целый день ломал голову над этим, и я очень старался решить эту проблему самостоятельно.
У меня есть два файла, webpack.config. js, который содержит весь мой код sr c с помощью загрузчиков; и web.config.vendor. js, который должен содержать все библиотеки моих поставщиков. Я предпочитаю это таким образом, так как я не хочу продолжать запускать webpack против файлов поставщиков И моего собственного кода sr c. Я видел этот тип конфигурации много раз, и каждый раз он выглядит как копия другого.
Примечания:
- Вывод файла webpack.config. js называется main. js
- Вывод webpack.config. js называется vendor. js
- Vendor. js загружается перед main. js
В webpack.config.vendor. js У меня есть следующее:
new webpack.ProvidePlugin({
$: 'jquery',
jquery: 'jquery',
'window.jQuery': 'jquery',
jQuery: 'jquery',
moment: 'moment',
Popper: ['popper.js', 'default']
/* For modal, you will need to add tether */
})
Вот сценарии, которые я использовал:
- webpack - config webpack.config. js --progress
- webpack --config webpack.config.vendor. js --progress
Когда я запускаю это, ни один из пакеты, которые звонят на jQuery, работают, мне выдает "jQuery не определено". Однако, когда я беру тот же код выше и помещаю его в webpack.config. js, тогда он работает как положено.
Теперь мне интересно, вот почему я получаю "jQuery не определено "потому, что оно определено в вендоре. js где нет способа обеспечить глобальное раскрытие пакетов узлов? И что причина, по которой определено jQuery IS, заключается в том, что компоненты находятся в одном файле (main. js) ??
Я также попробовал expose-loader в моем webconfig.config.vendor. js, и это тоже не сработало.