У меня возникла проблема с написанием плагина Webpack для службы перевода.Как написать плагин Webpack, который добавляет модули в пакет на лету на основе других модулей?
Цель состоит в том, чтобы:
- Получить имена (и исходный код) всех необходимых модулей во время компиляции. Мне нужно иметь возможность сканировать прилагаемый исходный код для специального использования функции
t()
, но я хочу сканировать только те модули, которые будут включены в комплект (который, в зависимости от конфигурации сборки, может быть подмножеством всех модулей проекта). - На основе собранных модулей я хочу создать дополнительные модули (с переводами) на лету и добавить их в комплект. Эти модули должны иметь возможность импортировать свои собственные зависимости.
Дополнительным требованием является функция разделения кода на WebPack должен работать с модулями, созданных на лету (я хочу, чтобы извлечь их в отдельные файлы - например bundle.[lang].js
). Кроме того, это может быть вне сферы действия этого вопроса, я должен сделать эти куски с необязательными переводами (так что вам не нужно загружать все языки, но только один).
Более подробную информацию можно найти в https://github.com/ckeditor/ckeditor5/issues/387.
Я пытался использовать несколько решений, но документация Webpack 2 не очень полезна. Я могу получить все модули, прослушивая крючки разрешения модуля (before-resolve
), но я не знаю, когда разрешены все зависимости, и я не знаю, смогу ли после этого добавлять дополнительные модули (и как это сделать - это addEntry
ok и когда я могу его использовать?).
Я также думал о подключении плагина Webpack и загрузчика Webpack (потому что мне нужна функция очень похожа на Webpack's style-loader), но из уровня плагина я могу добавить путь к загрузчику, а не самому загрузчика, поэтому я могу 't передать объект конфигурации в качестве параметра - я ошибаюсь?
PS. Я использую Webpack 2. Если вам кажутся вам странные требования, см. https://github.com/ckeditor/ckeditor5/issues/387 :).
Эта проблема похожа на http://stackoverflow.com/questions/31698254/webpack-dynamically-create-a-module –
И это также связано: http://stackoverflow.com/questions/35092183/webpack- plugin-how-can-i-modify-and-re-parse-a-module-after-compilation –
Если вы говорите «в зависимости от конфигурации сборки», вы подразумеваете, что вы устанавливаете в одном из своих файлов webpack.config? Или он основан исключительно на коде, который он кормил? Кроме того, вы можете создать свой язык. пакет «требует» динамически, я думаю, используя что-то вроде https://www.npmjs.com/package/string-replace-loader – user5328504