Skip to content
Open
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
71e3985
feat!: remove internalIP methods (#5625)
bjohansebas Jan 12, 2026
8431900
feat!: drop support for node <20.9 (#5631)
bjohansebas Jan 20, 2026
183d631
feat: remove SockJS support (#5626)
bjohansebas Jan 21, 2026
c25c01d
feat: bump to express 5 (#5564)
bjohansebas Jan 23, 2026
2a8e633
feat: remove spdy (#5635)
bjohansebas Jan 24, 2026
17fda73
feat: enable compression middleware for http/2 (#5638)
bjohansebas Jan 29, 2026
e3c54cd
feat: use new URL instead of url.parse (#5637)
bjohansebas Feb 1, 2026
ef970be
feat: remove colorette dependency (#5642)
bjohansebas Feb 1, 2026
a0b16fc
feat: remove bypass option from proxy configuration (#5641)
bjohansebas Feb 3, 2026
6c98453
feat: use compiler.platform to determine the target (#5647)
bjohansebas Feb 17, 2026
d24381a
feat: remove cli-flags (#5634)
bjohansebas Mar 6, 2026
b6a1aef
chore: update webpack-dev-middleware@8 (#5654)
bjohansebas Mar 30, 2026
66e55a3
chore: bump dependencies (#5655)
bjohansebas Mar 30, 2026
0df5661
chore: update webpack-cli to version 7.0.2 (#5656)
bjohansebas Apr 1, 2026
9c351d5
chore: update chokidar to v4 (#5657)
bjohansebas Apr 26, 2026
635b656
chore: update dev-middleware (#5664)
bjohansebas Apr 26, 2026
758c4d3
chore: update p-retry to v8.0.0 and node engine requirement to >=22.1…
bjohansebas May 1, 2026
5e06c89
refactor: migrate to node:test and setup jsdom environment (#5667)
bjohansebas May 10, 2026
359f4ef
chore: update chokidar to v5.0.0 in package.json (#5669)
bjohansebas May 11, 2026
2396c57
fix: treat loopback aliases as equivalent in isSameOrigin (#5659)
ThierryRakotomanana May 15, 2026
ebddec0
refactor: migrate to ES module syntax (#5665)
bjohansebas May 16, 2026
3a0207a
chore: update http-proxy-middleware (#5663)
bjohansebas May 22, 2026
f618d78
feat: add changeset validation and release workflow (#5673)
bjohansebas May 23, 2026
fda5b1c
fix: import afterEach for proper test cleanup and remove redundant ht…
bjohansebas May 23, 2026
78d3f88
ci: update
bjohansebas May 23, 2026
4810909
fixup!
bjohansebas Jun 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .changeset/bump-dependencies.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": patch
---

Bump production dependencies, notably `open` to v11 and `p-retry` to v8.
5 changes: 5 additions & 0 deletions .changeset/bump-express-5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": major
---

Bump Express to v5. See the [Express 5 migration guide](https://expressjs.com/en/guide/migrating-5.html) for the full list of breaking changes.
5 changes: 5 additions & 0 deletions .changeset/bump-webpack-peer-dependency.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": major
---

Bump the `webpack` peer dependency range from `^5.0.0` to `^5.101.0`.
5 changes: 5 additions & 0 deletions .changeset/compression-http2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": minor
---

Enable the compression middleware for HTTP/2 connections.
5 changes: 5 additions & 0 deletions .changeset/drop-node-below-22.15.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": major
---

Drop support for Node.js < 22.15.0.
5 changes: 5 additions & 0 deletions .changeset/fix-issameorigin-loopback-aliases.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": patch
---

Treat loopback aliases (`127.0.0.1`, `::1`, `localhost`) as equivalent in `isSameOrigin` so the WebSocket client does not reject valid same-origin connections.
5 changes: 5 additions & 0 deletions .changeset/migrate-to-esm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": major
---

Migrate the package to ES module syntax. The package is now published as ESM-only.
5 changes: 5 additions & 0 deletions .changeset/migrate-to-node-test.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": patch
---

Migrate the test suite from Jest to `node:test` and set up the jsdom environment.
5 changes: 5 additions & 0 deletions .changeset/remove-cli-flags.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": major
---

Remove CLI flags. Use the `serve` command from `webpack-cli` together with a configuration file or the programmatic API instead.
5 changes: 5 additions & 0 deletions .changeset/remove-colorette.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": minor
---

Remove the `colorette` dependency in favor of native ANSI styling.
5 changes: 5 additions & 0 deletions .changeset/remove-internalip-methods.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": major
---

Remove the `internalIP` and `internalIPSync` static methods from `Server`. Resolve the local IP yourself if you need it.
5 changes: 5 additions & 0 deletions .changeset/remove-proxy-bypass.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": major
---

Remove the `bypass` option from proxy configuration. Use the `router` or `context` options provided by `http-proxy-middleware` instead.
5 changes: 5 additions & 0 deletions .changeset/remove-sockjs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": major
---

Remove SockJS support. The `webSocketServer` option no longer accepts `"sockjs"`; use the default `"ws"` transport instead.
5 changes: 5 additions & 0 deletions .changeset/remove-spdy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": major
---

Remove the `spdy` dependency. Use the built-in `node:http2` module via the `server` option for HTTP/2 support.
5 changes: 5 additions & 0 deletions .changeset/update-chokidar.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": minor
---

Update `chokidar` to v5 and extend `watchFiles.options.ignored` to support glob string patterns via `tinyglobby`.
5 changes: 5 additions & 0 deletions .changeset/update-http-proxy-middleware-v4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": major
---

Update `http-proxy-middleware` to v4. See the [http-proxy-middleware v3 release notes](https://github.com/chimurai/http-proxy-middleware/releases/tag/v3.0.0) and [v4 release notes](https://github.com/chimurai/http-proxy-middleware/releases/tag/v4.0.0) for the full list of breaking changes.
5 changes: 5 additions & 0 deletions .changeset/update-webpack-cli-v7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": patch
---

Update `webpack-cli` to v7.0.2.
5 changes: 5 additions & 0 deletions .changeset/update-webpack-dev-middleware.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": major
---

Update `webpack-dev-middleware` to v8 and sync `originalUrl` for middleware compatibility. `server.middleware.getFilenameFromUrl()` is now asynchronous and resolves to `{ filename, extra: { stats, outputFileSystem } }`. See the [webpack-dev-middleware v8 release notes](https://github.com/webpack/webpack-dev-middleware/releases/tag/v8.0.0) for details.
5 changes: 5 additions & 0 deletions .changeset/use-compiler-platform-target.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": minor
---

Use `compiler.platform` to determine the target environment instead of inspecting the resolved `target` string.
5 changes: 5 additions & 0 deletions .changeset/use-new-url-instead-of-url-parse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dev-server": minor
---

Use the WHATWG `URL` API instead of the deprecated `url.parse`.
5 changes: 4 additions & 1 deletion .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"memfs",
"execa",
"networkidle",
"bracketless",
"ipaddr",
"pageerror",
"unmock",
Expand Down Expand Up @@ -37,6 +38,7 @@
"FACCA",
"darkgrey",
"Consolas",
"httpxy",
"peerigon",
"Ichigo",
"Kurosaki",
Expand Down Expand Up @@ -72,7 +74,8 @@
"hono",
"privkey",
"geomanist",
"nodenext"
"nodenext",
"WHATWG"
],
"ignorePaths": [
"CHANGELOG.md",
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: "Checkout Repository"
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: "Dependency Review"
uses: actions/dependency-review-action@v4
uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0
27 changes: 8 additions & 19 deletions .github/workflows/nodejs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ jobs:
cancel-in-progress: true

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
Expand Down Expand Up @@ -71,7 +71,7 @@ jobs:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
# 24.15 is pinned on purpose: Node 24.16 is broken for Puppeteer. Do not bump to 24.x.
node-version: [18.x, 20.x, 22.x, 24.15]
node-version: [22.x, 24.15, 25.x]
shard: ["1/4", "2/4", "3/4", "4/4"]
webpack-version: [latest]

Expand All @@ -82,26 +82,20 @@ jobs:
cancel-in-progress: true

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{ matrix.node-version }}
cache: "npm"

- name: Install dependencies
run: npm ci

- name: Install dependencies for Node.js@18
run: |
npm i p-retry@^4.5.0 open@^8.0.9
node ./scripts/prepare-test-for-old-node.js
if: matrix.node-version == '18.x'

- name: Setup firefox
if: matrix.os != 'windows-latest'
uses: browser-actions/setup-firefox@latest
uses: browser-actions/setup-firefox@0bc507ddf224827e3b1af68e014d5e42ab93e795 # v1.7.2
with:
firefox-version: latest

Expand All @@ -114,14 +108,9 @@ jobs:
cp -R tmp-client client

- name: Run tests for webpack version ${{ matrix.webpack-version }}
run: node_modules/.bin/jest --coverage --ci --shard=${{ matrix.shard }}
if: matrix.node-version == '18.x'

- name: Run tests for webpack version ${{ matrix.webpack-version }}
run: npm run test:coverage -- --ci --shard=${{ matrix.shard }}
if: matrix.node-version != '18.x'
run: npm run test:coverage -- --test-shard=${{ matrix.shard }}

- name: Submit coverage data to codecov
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1
with:
token: ${{ secrets.CODECOV_TOKEN }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ npm-debug.log
client
!/examples/client
!/test/client

examples/**/dist

coverage
node_modules
.vscode
Expand Down
6 changes: 2 additions & 4 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
"use strict";

module.exports = (api) => {
export default (api) => {
api.cache(true);

return {
Expand All @@ -24,7 +22,7 @@ module.exports = (api) => {
"@babel/preset-env",
{
targets: {
node: "18.12.0",
node: "22.15.0",
},
},
],
Expand Down
Loading
Loading