이를 위해 프록시를 설정했습니다.
자산 경로 인 경우를 제외하고 모든 경로에서 index.html을 제공하는 정규 익스프레스 웹 서버가 있습니다. 자산 인 경우 요청은 web-dev-server로 프록시됩니다.
반응 핫 진입 점은 여전히 웹팩 개발 서버를 직접 가리 키므로 핫 리로딩은 여전히 작동합니다.
8081에서 webpack-dev-server를 실행하고 8080에서 프록시를 실행한다고 가정합니다. server.js 파일은 다음과 같습니다.
"use strict";
var webpack = require('webpack');
var WebpackDevServer = require('webpack-dev-server');
var config = require('./make-webpack-config')('dev');
var express = require('express');
var proxy = require('proxy-middleware');
var url = require('url');
## --------your proxy----------------------
var app = express();
## proxy the request for static assets
app.use('/assets', proxy(url.parse('http://localhost:8081/assets')));
app.get('/*', function(req, res) {
res.sendFile(__dirname + '/index.html');
});
# -----your-webpack-dev-server------------------
var server = new WebpackDevServer(webpack(config), {
contentBase: __dirname,
hot: true,
quiet: false,
noInfo: false,
publicPath: "/assets/",
stats: { colors: true }
});
## run the two servers
server.listen(8081, "localhost", function() {});
app.listen(8080);
이제 webpack 구성에서 다음과 같이 진입 점을 만드십시오.
entry: [
'./src/main.js',
'webpack/hot/dev-server',
'webpack-dev-server/client?http://localhost:8081'
]
hotreload를 위해 8081로 직접 호출하십시오.
또한 절대 URL을 output.publicPath
옵션에 전달했는지 확인하십시오 .
output: {
publicPath: "http://localhost:8081/assets/",
// ...
}