如何使用与Nuxt的WebPack开发代理(How to use webpack dev proxy

2019-09-26 07:14发布

使用Nuxt开发一个通用的应用程序的JS,我试图配置的WebPack的开发代理 ,这样, 在发展中只 ,请求/api获得代理到http://127.0.0.1:500/api在那里他们将到达一个Python REST API。 继Nuxt文档,我已经延长了的WebPack配置在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 ,回到我的Nuxt的应用程序(它运行在开发端口8080),这表明的WebPack开发代理未捕捉/api路径和执行代理。 只是为了确认代理目的地是工作,如果我访问http://127.0.0.1:5000/api/things ,我得到预期的API响应。 为什么,当我伸出了Nuxt的WebPack配置启用的WebPack开发代理,并代理无法正常工作?

我有,不过,曾与成功@ nuxt /代理模块,但重要的是,我无法找到一个方法,使之不仅影响发展,而不是生产。 的那部分nuxt.config.js是这样的:

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

我很高兴能使用@ nuxt /代理模块,而不是(在顶部?)的开发的WebPack代理是否可以制成仅在开发工作。

Answer 1:

唉,我找错了树。

Nuxt 需要代理,即使是在生产。 当我最初的请求被处理和应用是服务器端渲染,任何API请求需要,因为节点服务器是做主叫,而不是浏览器来进行代理,所以这些API请求,甚至不会打我的生产路由器一样的nginx或HAProxy的(通常做我的路由为//api ,以适当的服务)。



文章来源: How to use webpack dev proxy with Nuxt