如何更改Vue-Cli热重载终结点(sockjs)的主机?

时间:2019-05-09 06:08:25

标签: nginx npm vagrant virtualbox vue-cli-3

我有什么

  • vue-cli在虚拟机(vue --version 3.7.0)中运行的应用程序
  • Laravel Homestead v8.3.2
  • 流浪者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/

我该怎么做

我在VM中运行npm run serve。我可以通过浏览器中的myvueapp.local从主机访问Vue应用。

我怎么了

热重装不起作用。 sockjs连接不是呼叫myvueapp.local,而是呼叫myvueapp.local:8080。所以,我得到

  

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

1 个答案:

答案 0 :(得分:0)

您需要在devServer上拥有一个公共属性,例如this

然后,热重装将在后备模式下工作,但是要正确使websocket工作,您需要在代理服务器中处理升级请求。 Here是解决快递问题的脚本。您将需要将此端口移植到nginx。这只是关于您缺失的升级请求的最后一部分。