Я обновляюсь с Webpack 3 до 4.
На всех моих веб-страницах фактически есть две точки входа: одна, общая для всех страниц, а другая - для конкретной страницы.
Я думал, что получил все для работы с webpack 4, но похоже, что некоторые из моих модулей выполнялись дважды;получается, что каждая точка входа загружает модуль, даже если модуль находился в общем js-файле.
Похоже, что решением было установить optimization.runtimeChunk = "single"
, что указывало бы веб-пакету обмениваться средой выполнения между всеми чанками..
Если посмотреть на вывод файлов js, это выглядело как ожидалось;однако каждая из моих точек входа предоставляет свой экспорт через следующую конфигурацию:
output: {... libraryTarget: "var", libarary: ["MyLibrary", "[name]"]}
Когда я загружаю веб-страницу и пытаюсь получить доступ к экспортированным объектам / функциям, я получаю сообщение об ошибке при попытке выполнить следующее:
MyLibrary["entry"]
, где "запись" - это имя одной из точек входа, результатом является число (вместо ожидаемого объекта, членами которого являются различные именованные экспорты).
Если я удаляю настройку optimization.runtimeChunk = "single"
, то MyLibrary["entry"]
возвращает ожидаемый объект с моими экспортерами, но у меня возникает та же проблема, что мои модули могут быть загружены несколько раз.