我有一个提供REST API +静态内容的服务器。当以"/api“开头的调用被传递到REST API时,是否可以使用webpack服务来服务静态内容,并让它管理热重新加载?
我尝试通过使用代理并指定内容目录来设置它。这样,由于无法与磁盘上相应的API路径匹配,webpack-serve将回退到REST api。我可以在浏览器中获得API端点,所以代理可以工作,但是使用AJAX的POST:ing会得到404:ed。
我可以在终端中看到,我的源文件中的更改得到了处理,但它们不会传播,既不是热的,也不是在手动刷新时传播的( js包被用作磁盘中的静态内容,在磁盘中它保持不变)。会非常感谢你的指针!
我的配置:
const path = require("path");
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const proxy = require("http-proxy-middleware");
const convert = require("koa-connect");
const Router = require("koa-router");
const router = new Router();
const proxyOptions = {
target: "http://localhost/",
changeOrigin: true
};
router.get("*", convert(proxy(proxyOptions)));
module.exports = {
watch: true,
mode: "development",
entry: "./internal-jsx/react-views.js",
output: {
path: path.resolve("static/scripts"),
filename: "dev.bundle.js"
},
serve: {
content: "./static",
port: 8080,
hot: {
hot: true
},
add: (app, middleware, options) => {
middleware.webpack();
middleware.content();
app.use(router.routes());
}
},
module: {
rules: [
{
enforce: "pre",
test: /\.js$/,
exclude: /node_modules/,
loader: "eslint-loader"
},
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: [
{
loader: "css-loader",
options: {
minimize: true,
url: false
}
}
]
})
},
{
test: /\.js$/,
exclude: /node_modules/,
use: "babel-loader"
},
{
test: /\.jsx?$/,
exclude: /node_modules/,
use: "babel-loader"
}
]
},
plugins: [
new ExtractTextPlugin("../css/bundle.css")
]
};发布于 2018-06-25 11:47:32
您可以添加一个中间件来将请求转发到webpack服务器。
因此,所有请求都将首先通过您自己的服务器。如果是对/api的调用,请自行响应。如果是静态资源请求,则转发到webpack服务器。
https://stackoverflow.com/questions/49221730
复制相似问题