Я на самом деле еще не реализовал это, но теоретически я думаю, что следующее должно работать.
Итак, я бы получил:
--> webpack client compile (without webpack --watch)
--> webpack server compile
--> watch ./client/index (--> recompile) running in parallel
Проблема в том, что я не уверен, как подключить режим webpack --watch после его компиляции.
Вместо того, чтобы снова запускать webpack --watch после первоначальной клиентской компиляции, я предлагаю использовать другой пакет npm для наблюдения за изменениями файловой системы и запустить собственный JS-скрипт, который выполняет компилятор webpack через код.
Это исправляет проблему для начальной компиляции. Для более поздних обновлений кода это по-прежнему не решает реальную проблему, т. Е. Завершаются ли обновления клиента до сервера (хотя я обнаружил, что мои обновления работают в 100% случаев в настоящее время).
Я создал ручную реализацию для горячей перезагрузки и автоматического обновления браузера:
https://github.com/kimgysen/isomorphic-react-setup
Я думаю, что вы можете создать собственную реализацию здесь:
if (module.hot) {
module.hot.accept('./server', async () => {
Где можно проверить, завершена ли текущая компиляция клиентского скрипта.
Это опять более шаблонный пример в исходном коде, хотя я не особо люблю это решение, хотя уверен, что это можно сделать.
С другой стороны, я чувствую, что это специальный патч для функции, которая недоступна инструментам, отвечающим за эту задачу (по крайней мере, я знаю), поэтому я думаю, что это нормально делать это путь пока пока не найдется лучшее решение.