Я прочитал на этот ответ на следующее утверждение:
"Имейте в виду, что компилятор может и действительно перемещает код из одного блока в другие файлы вывода блока, если он определит, что он используется только этим блоком."
Есть ли способ отключить это?
У меня есть «основной» чанк и «необязательный» чанк, и я обнаружил, что код из необязательного чанка полностью перемещается в основной.
Мой необязательный код будет вызываться только из основного кода, но только в том случае, если определено, что мы действительно хотим загрузить необязательный материал (на основе флага, который является внешним для обоих).
Я хочу минимизировать размер основного кода для случаев, когда необязательный материал не нужен, но, насколько я вижу, это невозможно при закрытии.
EDIT:
Чтобы разделить код, я использую опции -chunk в командной строке (java). «Основной» - я указываю на несколько папок («src / Infra / *. Js» и т. Д.) И использую «auto» для numFiles для чанка. «Необязательно» Я указываю на три конкретных файла без подстановочных знаков и указываю 3 как numFiles.
Чтобы загрузить «необязательный» скрипт, «main» записывает тег скрипта на страницу и имеет разрешение Promise при загрузке. Предполагается, что 'option' создает экземпляр класса, который он определяет, и помещает ссылку на этот экземпляр в массив в глобальном пространстве имен, затем main читает ссылку из массива и вызывает для него метод init (), передавая некоторые зависимости. ,
Есть ли лучше поддерживаемый (и такой же компактный) способ сделать это?
EDIT2: в случае, если у кого-то есть подобная проблема, я решил ее, используя функцию «nameCache» в uglifyjs, поэтому отдельные компоненты не обязательно нужно компилировать одновременно.