Как использовать webpack dev proxy с Nuxt - PullRequest
0 голосов
/ 08 сентября 2018

Используя Nuxt для разработки универсального приложения JS, я пытаюсь настроить dev-прокси webpack так, чтобы только в разработке , запросы /api получить прокси на http://127.0.0.1:500/api, где они достигнут Python REST API. Следуя документации по Nuxt, я расширил конфигурацию веб-пакета в 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 в dev), что указывает на то, что прокси-сервер dev веб-пакета не перехватывает путь /api и не выполняет прокси. Просто чтобы подтвердить, что прокси destination работает, если я посещаю http://127.0.0.1:5000/api/things,, я получаю ожидаемый ответ API. Почему, когда я расширил конфигурацию веб-пакета Nuxt для включения прокси-сервера dev веб-пакета, прокси не работает?

У меня, однако, был успех с модулем @ nuxt / proxy , но я не мог найти способ сделать так, чтобы он влиял только на разработку, а не на производство. Та часть nuxt.config.js выглядела так:

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

Я рад использовать модуль @ nuxt / proxy вместо (поверх?) Прокси-сервера dev веб-пакета, если его можно заставить работать только в разработке.

1 Ответ

0 голосов
/ 11 сентября 2018

Тьфу, я лаю не на том дереве.

Nuxt требуется для прокси, даже в производстве. Когда мой первоначальный запрос обрабатывается, а приложение обрабатывается на стороне сервера, любые запросы API должны передаваться через прокси-сервер, потому что сервер Node выполняет вызов, а не браузер, поэтому эти запросы API даже не попадут на мой производственный маршрутизатор, такой как nginx. или HAProxy (который обычно выполняет мою маршрутизацию для / и /api к соответствующим службам).

...