When specified, “proxy” in package.json must be a string.
When specified, "proxy" in package.json must be a string.
Instead, the type of "proxy" was "object".
Either remove "proxy" from package.json, or make it a string.
配置React
跨域时候
在网上看到是这样配置的,在package.json
里添加如下代码
"proxy": {
"/api": {
"target": "http://localhost:5000"
},
}
但是启动项目却报上面那个错误
以为我哪里写的不对,一个一个字对比,发现没毛病啊
于是在网上搜了下错误代码
在Facebook官方github里看到了
原来React
新版本不支持那样设置反向代理了
新版本需要这样做
安装http-proxy-middleware
$ npm install http-proxy-middleware --save
$ # or
$ yarn add http-proxy-middleware
然后
在创建一个setupProxy.js
文件,在src
目录,src/setupProxy.js
例如之前的配置
"proxy": {
"/api": {
"target": "http://localhost:5000/"
},
"/*.svg": {
"target": "http://localhost:5000/"
}
}
setupProxy.js
文件里则这样写
const proxy = require('http-proxy-middleware')
module.exports = function(app) {
app.use(proxy('/api', { target: 'http://localhost:5000/' }))
app.use(proxy('/*.svg', { target: 'http://localhost:5000/' }))
}
完整的写法
app.use(proxy('/api', {
target: 'https://localhost:5000/',
changeOrigin:true,
pathRewrite: {
"^/api": "/"
}
}))
更多问题看:https://github.com/facebook/create-react-app/issues/5103
没用啦,启动不了
@ga 这个就不清楚了,好久没搞react了
那个文件夹引入setupProxy,参数app怎么用的