Получение HMR всегда сложно для таких пользовательских настроек. Теоретически это довольно просто. Вам просто нужно запустить webpack-dev-server
с модулем HMR. В вашем файле PHP убедитесь, что он использует файл JS, сгенерированный из webpack-dev-server
. Код для обновления упакован в файл JS, поэтому он должен работать.
Однако дьявол кроется в деталях. Вам нужно убедиться, что связь между вашей страницей и webpack-dev-server
работает без проблем. Отслеживайте сетевой запрос веб-сокета и убедитесь, что они взаимодействуют должным образом.
Проблема, с которой вы, вероятно, столкнетесь, связана с безопасностью, поскольку соединение через веб-сокет ожидает другого хоста. В этом случае вы можете использовать конфигурацию из следующего ответа: Я получаю сообщение Invalid Host header при удаленном подключении к webpack-dev-server
Другая проблема может заключаться в том, что файл JS пытается подключиться к неправильному местоположению. Например: он думает, что ваш хост находится там, где находится соединение с веб-сокетом. В этом случае вы можете использовать настройку public
. Документацию см. здесь: https://webpack.js.org/configuration/dev-server/#devserverpublic
Для меня это похоже на работу с обратным прокси. Вы можете посмотреть это обсуждение, чтобы понять проблему: https://github.com/webpack/webpack-dev-server/issues/804
Могут быть другие проблемы. Вам просто нужно проверить соединение через веб-сокет и убедиться, что они взаимодействуют без проблем.
То, как вы ссылаетесь на сгенерированный файл js, — это отдельная проблема. Простым примером может быть установка порта на 8081 и объединение файла js в bundle.js
. Затем в вашем php-коде укажите его как http://localhost:8081/bundle.js
person
Vija02
schedule
14.05.2021
localhost:3000
и проксированиемmy-virtual-host-domain.dev
. Но в Browsersync нет функции HMR. - person user13103887   schedule 10.05.2021your-vps-domain.dev
, который находится где-то на удаленном сервере, то как Browsersync определяет, когда вы меняете файлы PHP на сервере? - person IVO GELOV   schedule 10.05.2021localhost:80/project
. Я только что настроил виртуальный хост и изменилetc/hosts
. - person user13103887   schedule 11.05.2021