Как изменить хост для конечной точки горячей перезагрузки vue-cli (sockjs)? - PullRequest
0 голосов
/ 09 мая 2019

Что у меня есть :

  • vue-cli приложение, работающее на виртуальной машине (vue --version 3.7.0)
  • Laravel Homestead v8.3.2
  • Vagrant 2.2.4
  • VirtualBox
  • Nginx

vue.config.js:

module.exports = {
  devServer: {
    host: 'myvueapp.local',
    https: true
  }
}

Конфигурация Nginx:

server {
    listen 80;
    listen 443 ssl http2;
    server_name .myvueapp.local;
    root "/home/path/to/myvueapp.local/public";

    index index.html index.htm;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.html =404;
        proxy_pass https://myvueapp.local:8080;
    }

    sendfile off;
}

npm run serve выход:

Local: https://myvueapp.local:8080/
Network: https://myvueapp.local:8080/

Что я делаю :

Я запускаю npm run serve в моей виртуальной машине.Я могу получить доступ к приложению Vue с моего хоста через myvueapp.local в браузере.

В чем моя проблема :

Горячая перезагрузка не работает.sockjs соединение вызывает не myvueapp.local, а myvueapp.local:8080.Итак, я получаю

https://myvueapp.local:8080/sockjs-node/info?t= net :: ERR_CONNECTION_REFUSED

1 Ответ

0 голосов
/ 09 мая 2019

Вам нужно публичное свойство на вашем devServer, например this

Затем горячая перезагрузка будет работать в режиме отката (опрос http), но для правильного полученияWebsockets работает, вы должны обрабатывать запросы на обновление на вашем прокси-сервере. Здесь - это скрипт, который решает проблему для экспресс.Вам нужно будет перенести это на nginx.Это просто последняя часть, касающаяся запросов на обновление, которые вы пропустили.

...