2016-06-07 66 views
1

我正試圖從一個項目中使用Grunt和Webpack作爲開發服務器並構建React應用程序。我已經成功地將Grunt的所有任務移至Webpack,除了在服務器端代碼發生更改時重新加載快速服務器。如何重新加載webpack-dev-server和express服務器上的模塊?

HMR在前端工作正常,我從Express後端調用webpack-dev-server並將它們與WDS代理關聯起來,但我還沒有找到一種方法來重新加載服務器端代碼而無需編譯React應用程序。

我嘗試使用nodemon在監聽nodemon.on('start',loadWebpackHere)以僅在服務器啓動(不重新啓動)時調用webpack時觀察後端代碼,但它確實監視服務器文件,但啓動事件是也會觸發,所以捆綁過程仍在運行。

我想我可以嘗試創建與後端服務器的新的WebPack項,但我不知道是否有可能運行一個象兩個服務器。

我還沒有找到任何關於如何實現這個目標的文章或樣本,有沒有人設置類似的東西成功?

+0

['webpack-hot-server-middleware'](https://github.com/60frames/webpack-hot-server-middleware)可能就是你要做的。或者至少文檔可能有助於解釋服務器端捆綁的一種方法 – riscarrott

+0

不幸的是,我嘗試了很多不同的配置,但使用中間件的問題仍然是,如果API監視器觸發重新啓動,它也會重建應用程序。很有趣的是,你今天評論了這篇文章,幾分鐘後我找到了我自己的解決方案(我剛剛發佈)。 編輯:我今天得到了通知,但你昨天發佈* – edrpls

+0

啊'的WebPack-熱服務器middleware'僅設計熱裝載的束的WebPack - 好像'nodemon'是一種常見的做法「熱」重新加載API,儘管我認爲它隨着服務器的增長可能會變得有問題,並且可能會變慢啓動。我正在查看https://github.com/glenjamin/ultimate-hot-reloading-example觀察文件系統並使require.cache失效,這是一個有趣的方法。 – riscarrott

回答

0

我找不到啓用HMR的方法,並且僅使用webpack觀察API文件,而不觸發UI更改的UI構建,但使用簡單的bash腳本環繞我的應用程序足夠簡單(帶我幾個月到這裏,雖然):

#!/bin/bash 

if [$NODE_ENV = "testing"] || [$NODE_ENV = "production"] ; then 
    node api/server.js 
else 
    node_modules/.bin/nodemon --watch api api/server.js & 
    node_modules/.bin/webpack-dev-server 
fi 

有可能是一個更好的方法,通過將API作爲入門的WebPack,但是這一次我服務就好了。

相關問題