Webpack AMD против ESModules - отличная начальная загрузка при порции - PullRequest
0 голосов
/ 01 марта 2019

У меня есть существующая кодовая база, которая была устаревшей кодовой базой RequireJS, где все модули AMD и написаны на ES5.Он использует webpack4 и оптимизировал чанки для разделения чанков на «vendor» (jquery, усы, другие сторонние библиотеки, которые редко меняются) и «internals» (вещи, которые установлены npm, но не сторонние).

Когда запустился веб-пакет, я получил 3 блока: мой вход, поставщик и внутреннее устройство.

Мне нужно только добавить тег сценария для моей записи, а веб-пакет автоматически включает другие фрагменты во время выполнения.

Я пытаюсь обновить кодовую базу до ES6.Единственное изменение в моей конфигурации webpack - это введение Babel для расширений .es6.js.

Я изменил свой входной файл с AMD (require([], function() {...})) на формат ESModule (import x from ‘x’).Webpack работает без ошибок.Я по-прежнему включаю только мой основной входной файл, но теперь блоки не загружаются автоматически.Это как если бы я должен был добавить теги сценария для них явно.На самом деле, когда я смотрю на файл начальной загрузки, он выглядит совсем по-другому.AMD один знал о моих чанках и их хешах и автоматически загружал их во время выполнения.Я вижу все 3 на вкладке сети, хотя у меня есть только один тег сценария для моей основной записи.Версия ESModule имеет ссылку на vendor и internals в файле начальной загрузки, но не знает их хэши и не пытается их загрузить.Фактически, основной входной файл является единственным файлом, который загружается на вкладке сети, и даже не выполняется (он освобождается из-за отсутствия других блоков).

Итак, мой вопрос: почему они ведут себя по-разному?Есть ли способ загрузить запись, не принадлежащую AMD, и сделать так, чтобы она автоматически загружала фрагменты, как это делает AMD?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...