标签: martyjs

为什么我们需要在express.js服务器上使用代理,以便将webpack热重新加载服务器功能与react-routing结合起来

可选信息:我正在尝试使用marty.js构建此项目,而webpack dev服务器允许来自react-router的入口点,以便它不仅仅在\ path中工作.

因此,我正在整天研究这个堆栈溢出答案,我无法理解以下代码背后的逻辑以及为什么这个答案有效.

retozi回答:

我设置了一个代理来实现这个目标:

您有一个常规的快速网络服务器,可以在任何>路由上为index.html提供服务,除非它是资产路由.如果它是资产,请求将被代理到web-dev-server

您的反应热入口点仍将直接指向webpack开发服务器,因此热重新加载仍然有效.

假设您在8081上运行webpack-dev-server,在8080运行代理.

我的代码现在看起来像这样,但为了使其工作,我稍后将需要实现marty-express.为了实现我必须首先了解retonzis的答案.

express.js文件

要求

    'use strict';
    var express = require('express');
    var path = require('path');
    var logger = require('morgan');
    var bodyParser = require('body-parser');
    var config = require('../config.json');
    var webpack = require('webpack');
    var WebpackDevServer = require('webpack-dev-server');
    var proxy = require('proxy-middleware');
    var url = require('url');
Run Code Online (Sandbox Code Playgroud)

代理

    var app = express(); //our express instance

    // -------- my proxy----------------------


    app.use('/assets', proxy(url.parse('http://localhost:8081/assets')));//but why do we need …
Run Code Online (Sandbox Code Playgroud)

express reactjs react-router martyjs webpack-dev-server

5
推荐指数
1
解决办法
2593
查看次数