Загружать необязательный файл конфигурации во время выполнения при компиляции приложения с помощью веб-пакета

Мое приложение реагирует читает настройки из config.json файл во время разработки (используя webpack-dev-server). Это работает нормально (требуется перезагрузка браузера для перезагрузки изменений конфигурации). Когда я создаю производственный код, пакеты отправляются в /build,

я добавил externals к моему webpack.prod.config.js Так что мой config.json файл скопирован с app/assets/config.json в build/config.json, Пока все хорошо.

{
  ...
  externals: {
    appConfig: JSON.stringify(require("./app/assets/config.json"))
  },
  ...
}

Проблема в том, что испущенный конфиг не загружается во время выполнения в производственном коде.

Я могу внести изменения в файл, но ничего не изменится, даже перезапустить веб-сервер и обновить браузер, что и было целью config.json,

Я предполагаю, что нет никакого способа достичь этого, так как webpack работает на node.js с доступом к файловой системе, а целевой вывод - "web", где доступ к файловой системе недоступен?

В любом случае, если я неправильно понял или сделал неверное предположение.

Обновить:
Я не пользовалась externals в конце. Мой конфиг был отправлен в build использование каталога CopyWebpackPlugin, В процессе разработки (с использованием горячей замены модуля) редактирование файла конфигурации приведет к перестройке веб-пакета.

В производственной сборке я получаю конфигурацию через HTTP-вызов axios. Веб-сервер был настроен на чтение каталога сборки (не в реальном производстве!).

0 ответов

Другие вопросы по тегам