首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用webpack的热重载-带代理的服务(?)

使用webpack的热重载-带代理的服务(?)
EN

Stack Overflow用户
提问于 2018-03-11 23:34:51
回答 1查看 950关注 0票数 3

我有一个提供REST API +静态内容的服务器。当以"/api“开头的调用被传递到REST API时,是否可以使用webpack服务来服务静态内容,并让它管理热重新加载?

我尝试通过使用代理并指定内容目录来设置它。这样,由于无法与磁盘上相应的API路径匹配,webpack-serve将回退到REST api。我可以在浏览器中获得API端点,所以代理可以工作,但是使用AJAX的POST:ing会得到404:ed。

我可以在终端中看到,我的源文件中的更改得到了处理,但它们不会传播,既不是热的,也不是在手动刷新时传播的( js包被用作磁盘中的静态内容,在磁盘中它保持不变)。会非常感谢你的指针!

我的配置:

代码语言:javascript
复制
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")
  ]
};
EN

回答 1

Stack Overflow用户

发布于 2018-06-25 11:47:32

您可以添加一个中间件来将请求转发到webpack服务器。

因此,所有请求都将首先通过您自己的服务器。如果是对/api的调用,请自行响应。如果是静态资源请求,则转发到webpack服务器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49221730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档