Я работаю над плагином webpack и не могу понять, как модифицировать модуль во время сборки. Что я пытаюсь сделать:
- Соберите данные через пользовательский загрузчик (отлично)
- После того, как все модули загружены, собирайте данные, собранные моим загрузчиком (отлично)
- Вставить код, который я сгенерировал в существующий модуль в сборке (сделав это, как описано ниже, не уверен, что это лучший способ)
- "обновить" этот модуль, чтобы код, который я добавил, анализировался, и его "требование превратилось в веб-пакет требует вызовов" (не может понять, как это сделать правильно).
В настоящее время я подключаюсь к "этой компиляции" в компиляторе, а затем "дополнительные-chunk-assets" в компиляции. Схватив первый кусок (единственный, в настоящее время, поскольку я все еще в разработке), итерации через модули в этом куске, чтобы найти тот, который я хочу изменить. Тогда:
- Добавление моего сгенерированного источника в модуль _cachedSource.source._source._value (я также попытался добавить к модулю._source._value)
- установка._cachedSource.hash в пустую строку (поскольку это кажется необходимым для следующего шага для работы)
- Я передаю модуль в .rebuildModule()
Похоже, rebuildModule должен повторно проанализировать источник, восстановить зависимости и т.д. и т.д., но он не анализирует мои требования и не требует их изменения в webpack. Встроенный файл включает мой измененный источник, но требования ( "..." ) не изменяются.
Как я могу сделать модуль модифицированным "обновить", чтобы webpack обрабатывал мой добавленный источник так же, как и исходный анализируемый источник? Есть ли что-то, что мне нужно сделать в дополнение к rebuildModule()? Я делаю эту работу слишком поздно в процессе сборки? Или я собираюсь сделать это неправильно?