Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
0ae6bb3
refactor(client): take the WebSocket transport from dev-middleware
alexander-akait Sep 26, 2026
fc36a59
refactor(client): take the error overlay from dev-middleware too
alexander-akait Sep 28, 2026
883384a
feat(client): add Server-Sent Events as a second transport
alexander-akait Sep 29, 2026
802c20d
refactor(client): no overlay code left to adapt
alexander-akait Sep 29, 2026
931ef71
feat: reuse webpack-dev-middleware's browser runtime
alexander-akait Oct 5, 2026
5516979
refactor: serve "sse" from the middleware's own transport
alexander-akait Oct 5, 2026
266d5ad
fix: keep this package's name and its refusals in the browser console
alexander-akait Oct 5, 2026
05f7f57
test: wait for a build rather than the handshake's configuration push
alexander-akait Oct 5, 2026
3c7c3ff
fix: refuse an event-stream client, not just a WebSocket one
alexander-akait Oct 5, 2026
8882b5b
fix: treat an empty `webSocketURL` part as one that was not given
alexander-akait Oct 5, 2026
c5664cb
fix: drop a test of a file that no longer exists, and regenerate the …
alexander-akait Oct 5, 2026
b1b729d
test: regenerate the web-socket-server-url console snapshots
alexander-akait Oct 6, 2026
6ee5295
fix: keep manual client entries, page-url opt-outs and a hand-made mi…
alexander-akait Oct 6, 2026
df9a746
test: bring the end-to-end suites in line with the middleware's client
alexander-akait Oct 6, 2026
1f7744b
test: update the command line tests for the middleware's client, and …
alexander-akait Oct 6, 2026
ff92b7a
test: record what a CI browser sees, not what a sandbox does
alexander-akait Oct 6, 2026
f0466ec
test: write the changed file's path the same on every platform
alexander-akait Oct 6, 2026
235311b
test: wait for the client to give up on a name that never resolves
alexander-akait Oct 6, 2026
08d0b4e
test: wait for the worker's client to connect before the snapshot
alexander-akait Oct 6, 2026
0fd8f2d
chore: merge this change's changesets into one entry
alexander-akait Oct 6, 2026
d682d3d
feat: leave the last of the compiler and socket wiring to the middleware
alexander-akait Oct 6, 2026
ec4b108
fix: keep a subclass's client entries, the client paths in use and un…
alexander-akait Oct 6, 2026
a64e43f
test: main's suite on the middleware's client, and React Refresh's ho…
alexander-akait Oct 6, 2026
ef66db4
chore(ci): TEMPORARY - install the unreleased webpack-dev-middleware
alexander-akait Oct 6, 2026
a1215b0
refactor: follow the middleware's hot.client.url and pageParamPrefix …
alexander-akait Oct 9, 2026
d6fb4a5
chore(ci): TEMPORARY - re-vendor webpack-dev-middleware with the sett…
alexander-akait Oct 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/reuse-dev-middleware-client.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": minor
---

The browser client, the error overlay and both transports now come from webpack-dev-middleware, so this package has no client code of its own. Every option keeps its name and meaning, `allowedHosts` and the origin checks still apply here, and this server's `{ type }` messages are still sent next to the middleware's, so React Refresh keeps working. `client/index.js`, `client/socket.js` and `client/clients/WebSocketClient.js` still resolve while the client's internal files are gone, and the console wording, the overlay and the progress indicator are now the middleware's. `client.webSocketTransport: "sse"` adds Server-Sent Events, a universal build now runs in Node without the client throwing, and `sendMessage()`, `getClientEntry()` and `getClientHotEntry()` still work, a subclass's overrides included, but are deprecated.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,4 @@ test/fixtures/reload-config/main.css
test/fixtures/reload-config-2/main.css
test/fixtures/worker-config-dev-server-false/public
!/test/fixtures/static-config/public/node_modules
test/fixtures/compatibility-config/changing.cjs
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -259,10 +259,13 @@ See [**the documentation**][docs-url] for more use cases and options.

## Browser Support

While `webpack-dev-server` transpiles the client (browser) scripts to an ES5
state, the project only officially supports the _last two versions of major
browsers_. We simply don't have the resources to support every whacky
browser out there.
The browser runtime is [webpack-dev-middleware]'s, which ships as ES5 and uses
no built-in newer than ES5 beyond `Promise`, the transport in use and what hot
module replacement itself needs. As before, the project only officially
supports the _last two versions of major browsers_. We simply don't have the
resources to support every whacky browser out there.

[webpack-dev-middleware]: https://github.com/webpack/webpack-dev-middleware#client-options

If you find a bug with an obscure / old browser, we would actively welcome a
Pull Request to resolve the bug.
Expand Down
42 changes: 0 additions & 42 deletions client-src/clients/WebSocketClient.js

This file was deleted.

24 changes: 0 additions & 24 deletions client-src/globals.d.ts

This file was deleted.

Loading
Loading