2016-10-03 66 views
0

我一直在研究利用Apollo-Client和GraphQL的React樣板。我的應用程序已設置好,以便我有一個節點進程在端口3000上運行Express服務器,以便實際呈現應用程序,另一臺Express服務器在端口3001上使用webpack-dev-middleware打包並提供我的JavaScript包。webpack-dev-middleware服務包與應用不同的端口

嘗試使用<script src="/static/js/bundle.js />加載我的包的時候,因爲它試圖在http://localhost:3000/static/js/bundle.js而不是http://localhost:3001/static/js/bundle.js,它實際上是由webpack-dev-middleware服務請求包我得到一個404。

有沒有辦法配置webpack-dev-middleware或我的應用服務器,以便我的應用可以從/static/js/bundle.js訪問JS捆綁包,而無需在其前面添加http://localhost:3001

+0

爲什麼您有兩臺獨立的Express服務器? – robertklep

+0

一個用於執行服務器端(預)渲染,另一個用於開發目的,不用於生產。 – Kamaros

+0

對於我自己,我都使用一臺Express服務器(僅在未生產時才加載Webpack中間件)。 – robertklep

回答

0

你需要代理請求從:3000/static/js/bundle.js:3001/static/js/bundle.js,你可以用像這樣做:

const request = require('request'); 
... 
app.get('/static/js/bundle.js', (req, res) => { 
    req.pipe(request.get('http://localhost:3001/static/js/bundle.js')).pipe(res); 
}); 

你必須確保這條線路在開發過程中只加。

相關問題