Как использовать webpack для правильной сборки зависимости umd

Я использую webpack для сборки устаревшего веб-приложения es5, и мне нужно импортировать некоторые зависимости в формате umd, например.

import 'moment/min/moment-with-locales.min.js'

Я хочу, чтобы webpack просто объединял его в окончательный пакет приложения, ничего не меняя. Однако кажется, что веб-пакет преобразует модуль umd во что-то вроде приведенного ниже во время сборки.

(function(module) {
    !function(a, b) {
        true ? module.exports = b() : undefined
    }

Обратите внимание на истину выше, это, очевидно, не позволит пакету загрузиться в браузере, поскольку он рассматривает браузер как среду CommonJS. Есть ли какие-либо настройки/конфигурации, которые я могу использовать для предотвращения этого вместо использования https://webpack.js.org/loaders/expose-loader/ как обходной путь?


person Xlee    schedule 01.11.2020    source источник


Ответы (1)


загрузчик скриптов решил мою проблему. В основном я хочу, чтобы некоторые сторонние библиотеки загружались как глобальные переменные (например, window.$f или jQuery) из-за работы над миграцией устаревшей кодовой базы.

примечание: модули webpack также имеют параметр noparse, который предотвращает указанное выше преобразование, но это не решает мою проблему из-за того, что приведенный выше код фактически загружается веб-пакетом и, таким образом, по-прежнему рассматривается как модуль cjs.

person Xlee    schedule 22.11.2020