reactjs - 在 http-proxy-middleware 的 setupProxy.js 中 react 导入环境生成意外标识符

标签 reactjs http-proxy-middleware craco

我需要使用 craco 获得的变量来设置代理 http-proxy-middleware 的目标。我已经按照本指南为不同的 environments 准备了更多配置文件。 .我有 3 个文件 local.js、development.js 和 production.js,它们由 craco 使用不同的 npm run startlocal、startdevelopment 选择。

在 package.json 我有:

 "scripts": {
        "startlocal": "cross-env CLIENT_ENV=local craco start",
        "startdevelopment": "cross-env CLIENT_ENV=development craco start",
        "startproduction": "cross-env CLIENT_ENV=production craco start",

问题是我想根据我所处的环境更改代理,因此使用 http-proxy-middleware 我使用了 setupProxy.js,如 guide 所述.如果我从“环境”插入导入环境;在 setupProxy.js 中出现意外标识符错误。

这是 setupProxy.js 的代码:

 import environment from 'environment';
    const proxy = require('http-proxy-middleware');

    module.exports = function(app) {
      app.use(proxy('/api', { target: 'http://localhost:5000/' }));
    };

    this my craco.config.js

    const path = require('path');    

    module.exports = function({ env, paths }) {    
      return {    
        webpack: {   
          alias: {    
            environment: path.join(__dirname, 'src', 'environments',     process.env.CLIENT_ENV)    
          }    
        },    
      };    
    };     

npm run startlocal 的控制台输出

Unexpected identifier
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! seltirmedfront_candidati@0.1.0 startlocal: cross-env CLIENT_ENV=local craco start
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the seltirmedfront_candidati@0.1.0 startlocal script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

我想这个问题与 setupProxy.js 是自动加载并在 craco.config.js 之前加载的事实有关,因此它没有导入。

最佳答案

您不需要 setupProxy.jshttp-proxy-middleware

只需将代理添加到您当前的craco.config.js:

module.exports = {
...
    devServer: {
        proxy: {
            '/api': 'http://localhost:5000'
        }
    }
};

关于 devServer 设置的更多信息:https://webpack.js.org/configuration/dev-server/#devserverproxy

关于reactjs - 在 http-proxy-middleware 的 setupProxy.js 中 react 导入环境生成意外标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57694820/

相关文章:

javascript - React Material Multi Select 默认值未选中

node.js - 使用 axios 处理 JSON 数据时遇到问题

javascript - 如何在启用 Windows 身份验证的情况下发送 API 请求?

javascript - 如何让 require.context 在有/没有 Craco 的情况下与 Create React App 一起工作?

reactjs - 如何修复这个 React Native 错误 :"java.lang.String cannot be cast to com.facebook.react.uimanager"?

javascript - 如果用户第一次访问网站的任何页面并单击后退按钮,那么如何让用户登陆首页

node.js - 如何使用 http-proxy-middleware 代理到许多不同的目标?

javascript - 使用 http-proxy-middleware 时 React 应用程序未加载

javascript - 如何通过创建 react 应用启用 JIT(即时模式)?