用http-proxy-middleware配置代理时报错:proxy is not a function

再用create-react-app创建react项目后,安装了http-proxy-middleware来配置代理,在src文件夹下新建了一个setupProxy.js文件,当时写的的代码如下:

const proxy = require("http-proxy-middleware");
module.exports = function(app) {
    app.use(
        proxy(
            "/api", {
            target: "http://localhost:3001",
            changeOrigin: true,
            pathRewrite: {
                "^/api": "/"
            }
        })
    );
};

发现报如下错误:proxy is not a function
在这里插入图片描述
后来查阅资料发现http-proxy-middleware的官方文档,发现最新的1.0.0版本已经对模块的引用作了明确的要求
0.x.x版本的引用方式

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

1.0.0版本的引用方式

const { createProxyMiddleware } = require('http-proxy-middleware');

所以把代码改为如下就可以了:

const { createProxyMiddleware } = require("http-proxy-middleware");
module.exports = function (app) {
    app.use(
        "/api",
        createProxyMiddleware(
            {
                target: "http://localhost:3001",
                changeOrigin: true,
                pathRewrite: {
                "/api": ""
            }
            }
        )
    );
};

版权声明:本文为weixin_44656392原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。