【crxjs/vite-plugin】CORS、WebSocket、諸々エラー
こんにちは、フリーランスエンジニアの太田雅昭です。
CORS, WebSocket, 色々エラー
crxjs/vite-pluginにまつわるエラーがたくさん出てきました。開発のdevで起動した時の問題です。以下のissuesが建てられています。
https://github.com/crxjs/chrome-extension-tools/issues/971
Access to script at 'http://localhost:5173/@crx/client-worker' from origin 'chrome-extension://gbfkgllkhphjnpfpgfgmpahkbekgeenh' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
WebSocket connection to 'ws://localhost:5173/' failed: Error during WebSocket handshake: Unexpected response code: 400
原因
viteがCORSに関するセキュリティアップデートを行ったことで、それにvite-pluginが対応できていないことが原因のようです。
影響のあるバージョン
Starting with these Vite versions:
=6.0.9
=5.4.12, <6.0.0
=4.5.6, <5.0.0
解決法
上記issueで紹介されていますが、以下のようにします。なお暫定的な処置です。
// manifest.jsonに以下を追加
{
"host_permissions": [
"<all_urls>"
]
}
// vite.config.tsに以下を追加
{
legacy: {
skipWebSocketTokenCheck: true,
},
}
もう何をしてもエラーになって何がなんやら状態でしたが、issueを見つけてようやく解決できました。