首页 > 解决方案 > 将 create-react-app 代理设置从 1.x 更新到 2.x

问题描述

我选择了一个遗留项目,并被要求将create-react-app包从 1.0.3 更新到最新版本。

问题是,新的代理设置不起作用;以前的请求my/resource.do刚刚返回index.html

正如文档中所建议的那样(https://facebook.github.io/create-react-app/docs/proxying-api-requests-in-development#configuring-the-proxy-manually),我使用了“代理”对象inpackage.json并将其转换为名为setupProxy.js. 新的 js 文件肯定正在被读取;我只是无法让它工作。

任何人都可以看到错误在这里吗?这与文档中指定的完全相同,但由于某种原因,以前有效的请求现在失败了。

非常感谢任何帮助

之前(中package.json

"proxy": {
    "/api": {
      "target": "http://localhost:9000"
    },
    "/some/thing": {
      "target": "https://example.org:8452/",
      "secure": false,
      "changeOrigin": true
    },
    "/some": {
      "target": "https://example.org:7324",
      "secure": false,
      "changeOrigin": true
    },
    "/.*": {
      "target": "https://example.org:8452/",
      "secure": false,
      "changeOrigin": true
    }
  }

之后(在setupProxy.js):

const proxy = require('http-proxy-middleware')

module.exports = function(app) {

    app.use('/api', proxy({ target: 'http://localhost:9000/' }))

    app.use('/some/thing', proxy( 
        { 
            target: 'https://example.org:8452/',
            secure: false,
            changeOrigin: true,
            logLevel: 'debug'

        } 
    ))

    app.use('/some', proxy(
        { 
            target: 'https://example.org:7324/',
            secure: false,
            changeOrigin: true,
            logLevel: 'debug'
        } 
    ))

    app.use(proxy('/.*',
        {
            target: 'example.org:8452/',
            secure: false,
            changeOrigin: true,
            logLevel: 'debug'

        }
    ))

}

标签: reactjscreate-react-app

解决方案


推荐阅读