Плагин Webpack 5: нет записи генерации кода для ошибки модуля

При обновлении плагина, который я поддерживаю для поддержки как Webpack 4, так и 5, я наткнулся на следующую кирпичную стену, по которой я вообще не могу найти никакой информации, и никто в Gitter, похоже, тоже не может помочь.

Плагин добавляет актив (карту спрайтов SVG) в compilation.assetsкоторый работает без проблем. В плагине есть функция, которая позволяет пользователям сохранять созданный блок, который необходим для взаимодействия с некоторыми другими плагинами. Минимальный рабочий код для Webpack 4 будет примерно таким (и мне всегда казалось немного взломанным, но он работал ‍♂️):

// OutputOptions.chunk.name would equal 'spritemap' in this example
const chunk = compilation.addChunk(outputOptions.chunk.name);
const module = new RawModule('', `${outputOptions.chunk.name}-dummy-module`);

chunk.addModule(module);

Использование того же подхода с Webpack 5 вызывает следующую ошибку:

ERROR in spritemap.js
No code generation entry for spritemap-dummy-module (existing entries: <path-to>/svg-spritemap-webpack-plugin/examples/simple/src/index.js)

Он также показывает предупреждение об устаревании для Chunk.addModule что я могу исправить, используя compilation.chunkGraph.connectChunkAndModule(chunk, module); вместо этого, но это (очевидно) не избавляет от ошибки ввода генерации кода.

1 ответ

В итоге я отправил тот же вопрос, что и проблема GitHub, так как я не получал никаких ответов на Gitter и stackru. Тобиас Копперс подтолкнул меня в правильном направлении, предложив убедиться, что модуль был добавлен в compilation.modules. В итоге эта конкретная проблема была решена с помощью следующего кода:

compilation.modules.add(module);
Другие вопросы по тегам