Как изменить граф требований перед упаковкой (оптимизация вывода) - PullRequest
0 голосов
/ 10 апреля 2019

Поскольку я не нашел конфигурацию, которая бы соответствовала моим потребностям, я пишу собственный плагин Webpack для оптимизации распределения модулей / зависимостей по выходным файлам.

Есть ли способ получить доступ к графу / дереву зависимостей и изменить его до того, как Webpack начнет связывать?

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

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

Например:

Если у меня есть 3 файла: a.js , b.js и c.js

Каждый со своими статическими операторами запроса и соответствующими зависимостями (между этими файлами есть общие зависимости). Мне нужен Webpack для разрешения и включения каждого модуля и его зависимостей в порядке, не повторяя уже вставленные.

Итак: a.js будет иметь свои собственные модули и зависимости, затем b.js игнорирует уже вставленные и т. Д.

Буду признателен за любые советы, поскольку я потерял целые дни, пытаясь выяснить это самостоятельно.

1 Ответ

0 голосов
/ 16 апреля 2019

На случай, если кто-то столкнется с этой же проблемой, мне удалось решить ее, написав плагин (который вы можете найти ЗДЕСЬ ).

По поводу доступа к графу требуется не все так просто. Мне пришлось глубоко изучить исходный код Webpack, чтобы понять, как работать с чанками, модулями, ресурсами и т. Д.

Предполагая, что вы уже знакомы с основами плагинов Webpack , я бы порекомендовал изучить Chunk.js и Module.js в lib Webpack * (Compiler.js и Compilation.js немного сложнее, но они также содержат полезные методы). (См. Webpack HOOKS , чтобы узнать, как получить доступ к экземплярам компилятора, компиляции, модулей и чанков).

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