質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

5321閲覧

[Vite] 『WebSocket connection to '<ローカルIP>' failed』 無限リロード

shimeji_XX

総合スコア42

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2022/06/06 06:15

編集2022/06/06 06:31

前提

Vue3 + JavaScript + Vuetify3 beta + Vite 環境
上記の構成でプロジェクトを作成しています。

コンパイル後<ローカルIP:3000>にアクセスした際、
『WebSocket connection to 'wss://<ローカルIP>:3000/' failed: 』
のエラーが起き、数秒ごとにページの再読み込みを行う状態です。

同現象について

ポピュラーなエラーのようで検索すると無限に情報が出てきます。
……が、結局解決していない場合も多くクリティカルな情報を見つけられていない状態です。

実現したいこと

HRMの停止、またはwebsocketの通信

発生している問題・エラーメッセージ

ブラウザ上にて以下のループ

[vite] connecting... WebSocket connection to 'ws://<ローカルIP>:3000/' failed: [vite] server connection lost. polling for restart...

該当のソースコード

・vite.config.js

JavaScript

1import { defineConfig } from 'vite' 2import vue from '@vitejs/plugin-vue' 3import vuetify from 'vite-plugin-vuetify' 4 5const path = require('path') 6 7// https://vitejs.dev/config/ 8export default defineConfig({ 9 plugins: [ 10 vue(), 11 // https://github.com/vuetifyjs/vuetify-loader/tree/next/packages/vite-plugin 12 vuetify({ 13 autoImport: true, 14 }), 15 ], 16 server: { 17 host: true, 18 }, 19 define: { 'process.env': {} }, 20 resolve: { 21 alias: { 22 '@': path.resolve(__dirname, 'src'), 23 }, 24 },

試したこと

参考にしたURLを記載します。

・Viteでブラウザが再読込が繰り返す問題を解決

※環境は違いますが詳しい説明が記載してあります。
https://diary.varwww.com/posts/2021/vite-unexpected-reload-loop.html

・Docker環境でvite+Nginxを動作させた時に詰まったポイント

※環境は違いますが発生している現象は同じです。
URL: https://qiita.com/tomopict/items/2c321374e917cc679efb

・公式ドキュメント

server.hmr の項目でHMRの無効について記載がありますが、
hmr: false でも hmr{ overlay: false }でも無効にできなかったため諦めています。
URL: https://vitejs.dev/config/#server-force

・Docker環境でvite+Nginxを動作させた時に詰まったポイント

※こちらも環境は違いますが発生している現象は同じです。
https://qiita.com/kiyoshiro/items/9dcba9af830f7ca51323

・stack overflow で検索(改善せず)

httpsを有効

JavaScript

1//略 2 server: { 3 https: true, 4 }, 5//略

https://stackoverflow.com/questions/71018015/vite-js-vue-unwanted-page-reload-happens-only-on-samsung-internet/71071616#71071616

同現象(未解決)
https://stackoverflow.com/questions/70290931/nuxt-3-vite-hmr-infinite-reload-failed

port,protocolの変更
https://github.com/vitejs/vite/issues/1653

JavaScript

1//略 2 server: { 3 hmr: { 4 host: 'some.server, 5 port: 443, 6 protocol: 'wss' 7 } 8 } 9//略

HRMを無効にできないという人(未解決)
https://stackoverflow.com/questions/71956576/vitejs-websocket-connection-to-wss-hostport-failed-due-to-hmr

port,clientPortの指定
https://stackoverflow.com/questions/71050909/how-to-proxy-vites-hmr-request-in-docker

JavaScript

1 server: { 2 port: 8015, //default is 3000 but I have multiple apps within one site running so I need to define multiple custom ports on the same machine / container 3 https: true, 4 hmr: { 5 clientPort: 9026, 6 }, 7 },

補足情報(FW/ツールのバージョンなど)

主要なツールver
npm8.5.5
node16.15.0
@vue/cli5.0.4

ブラウザ
・Edge
・Chrome

お手数をおかけしますが、情報ありましたらお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

理解しての回答はできませんが、以下で解決しました。
参考になればと思い回答します。

私の環境
Vue3、Quasar、Vite、Windows10 WSL、Docker、Visual Studio Code

devcontainer.json

1// Use 'forwardPorts' to make a list of ports inside the container available locally. 2"forwardPorts": [3000,20002], 3

quasar.config.js

1devServer: { 2 // https: true 3 open: true, // opens browser window automatically 4 hmr: { 5 port: 3000 6 }, 7}, 8

投稿2022/08/29 07:30

編集2022/08/29 07:43
shareofthings

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問