From 1413052d823b653cef9a5be34127563e2e4f5357 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sat, 19 Nov 2022 00:45:42 +0000 Subject: [PATCH] Configure webpack to allow proxied GitHub Codespaces connections By default, webpack's development websocket rejects all incoming connections having an unexpected `Host` or `Origin` header: https://webpack.js.org/configuration/dev-server/#devserverallowedhosts This configuration sets `devServer.allowedHosts` to `[".preview.app.github.dev"]` if a GitHub Codespaces environment is detected. Additionally, to handle how GitHub Codespaces forwards ports, webpack's configuration is changed to obtain the full websocket URL from the client script, instead of only the hostname: https://webpack.js.org/configuration/dev-server/#websocketurl --- webpack.dev.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/webpack.dev.js b/webpack.dev.js index 2cfa2df7..dce8a305 100644 --- a/webpack.dev.js +++ b/webpack.dev.js @@ -2,6 +2,7 @@ const path = require('path'); const common = require('./webpack.common'); const { merge } = require('webpack-merge'); + module.exports = merge(common, { mode: 'development', output: { @@ -11,6 +12,10 @@ module.exports = merge(common, { }, devServer: { historyApiFallback: true, + client: { + webSocketURL: "auto://0.0.0.0:0/ws" + }, + allowedHosts: process.env.CODESPACES ? [".preview.app.github.dev"] : "auto" }, module: { rules: [