代码之家  ›  专栏  ›  技术社区  ›  Collin Allen

如何在Nuxt中使用webpack dev proxy

  •  1
  • Collin Allen  · 技术社区  · 6 年前

    Nuxt 为了开发一个通用的JS应用程序,我正在尝试配置 webpack's dev proxy 以便, ,请求 /api http://127.0.0.1:500/api 在那里他们将得到一个Python restapi。在Nuxt文件之后,我 extended the webpack config 在里面 nuxt.config.js 像这样:

    build: {
      extend (config, { isDev }) {
        // Proxy /api to Python only in dev
        if (isDev) {
          const devServer = {
            proxy: {
              '/api': 'http://127.0.0.1:5000'
            }
          }
          config.devServer = devServer;
        }
      }
    }
    

    ...
    devServer: { proxy: { '/api': 'http://127.0.0.1:5000' } } }
    ...
    

    然而,当我拜访 http://127.0.0.1:8080/api/things ,则返回my numxt app(它在dev中的端口8080上运行),表示webpack dev proxy没有捕获 路径和执行代理。只是为了确认代理 目的地 http://127.0.0.1:5000/api/things ,我得到了预期的API响应。

    然而,我在这方面取得了成功 @nuxt/proxy 模块,但关键的是,我找不到一个方法,使它只影响开发,而不是生产。那部分 numxt.config.js文件 看起来像这样:

    axios: {
      proxy: true
    },
    proxy: {
      '/api': 'http://127.0.0.1:5000'
    },
    

    1 回复  |  直到 6 年前
        1
  •  2
  •   rrpilot    4 年前

    我需要这样做,并能够解决这个问题,使用以下在numxt.config.js文件

    export default {
      // other config ...
    
      ...process.env.NODE_ENV === 'development' && {
        proxy: {
          '/api': 'http://localhost:8000',
        }
      },
    }
    

    如果我们正在进行开发构建,那么这段代码只会在nuxt config中添加代理密钥。

    https://stackoverflow.com/a/51200448

        2
  •  1
  •   Collin Allen    6 年前

    啊,我找错树了。

    努克斯 需要 代理,甚至在生产中。当我的初始请求被处理并且应用程序被服务器端呈现时,任何API请求都需要被代理,因为节点服务器正在进行调用,而不是浏览器,所以这些API请求甚至不会击中我的生产路由器,如nginx或HAProxy(通常是我的路由) / /api 提供适当的服务)。