Подтвердить что ты не робот

Нужен ли мне webpack-dev-сервер, если я использую сервер node, например express

Я следую некоторым учебникам для создания изоморфного приложения с выражением и реагированием. Я смущаюсь с webpack-dev-сервером.

В учебнике webpack говорится о веб-пакете-dev-сервере:

Это связывает небольшой экспресс-сервер на localhost: 8080, который обслуживает ваши статические активы, а также пакет (скомпилирован автоматически).

Он автоматически обновляет страницу браузера при перекомпиляции пакета (socket.io). Откройте http://localhost:8080/webpack-dev-server/bundle в своем браузере.

Так как у меня есть экспресс-сервер, мне действительно нужен webpack-dev-сервер? Или какие преимущества и недостатки его использования? И если я хочу использовать режим "hot-loader", нужен ли webpack-dev-сервер?

4b9b3361

Ответ 1

Так как у меня есть экспресс-сервер, мне действительно нужен webpack-dev-сервер?

Да и нет. Вы можете использовать гибридный подход, который по существу настраивает webpack-dev-сервер как прокси-сервер. У вас есть экспресс-сервер, обслуживающий все, кроме активов. Если это актив, запрос отправляется/проксируется на webpack-dev-сервер. См. Ответ здесь для более подробной информации: Как разрешить webpack-dev-серверу разрешать точки входа от маршрутизатора-ответчика

В качестве альтернативы вы можете использовать webpack-dev-middleware и webpack-hot-middleware, если вы не хотите иметь дело со всей грязной логикой проксирования и иметь 2 сервера. См. Пример здесь: https://github.com/glenjamin/webpack-hot-middleware/blob/master/example/server.js

какие преимущества и недостатки его использования?

Перезагрузка в реальном времени и замена горячего модуля. Очень полезная функция для развития на мой взгляд

И если я хочу использовать hot-loader, нужен ли webpack-dev-сервер?

Нет, он работает поверх Webpack интерфейса замены горячего модуля. Вы можете создать свой собственный "горячий сервер", если хотите. Клиент webpack-dev-server просто слушает socket.io для горячих обновлений и вызывает postMessage (https://github.com/webpack/webpack-dev-server/blob/8e8f540b2f7b35f7b6c3ce616a7fd2215aaa6eea/client/index.js#L64-L67), который затем подбирается сервер https://github.com/webpack/webpack/blob/bac9b48bfb0f7dd9732f2faafb43ebb22ee2a2a7/hot/only-dev-server.js#L59-L67.

Или я рекомендую, что вы можете просто использовать webpack-dev-middleware и webpack-hot-middleware, которые я упомянул выше. Таким образом, вам не нужно беспокоиться о прокси-логике, и вы можете легко интегрировать горячую перезагрузку в существующий экспресс-сервер без необходимости использования webpack-dev-server