Skip to content

Commit 67dd6cf

Browse files
committed
feat!: require Node 24 and migrate CJS to ESM output
BREAKING CHANGE: Node 24+ is now required. All packages emit ESM. - Add "type": "module" to all package.json files - Update exports to use single "default" condition (remove CJS/ESM dual exports) - Update engines to require Node >=24.0.0 - Delete all index.mjs shim files (34 files) - Fix CJS interop issues across source files: - require.resolve → import.meta.resolve / createRequire - __dirname → import.meta.dirname - Default import interop for CJS packages (rollup plugins, saucelabs, etc.) - Add .nvmrc (v24.11.1) - Add changeset for breaking node version requirement Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent f813e66 commit 67dd6cf

86 files changed

Lines changed: 321 additions & 690 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
"@web/browser-logs": major
3+
"@web/config-loader": major
4+
"@web/dev-server": major
5+
"@web/dev-server-core": major
6+
"@web/dev-server-esbuild": major
7+
"@web/dev-server-hmr": major
8+
"@web/dev-server-import-maps": major
9+
"@web/dev-server-legacy": major
10+
"@web/dev-server-polyfill": major
11+
"@web/dev-server-rollup": major
12+
"@web/dev-server-storybook": major
13+
"@web/mocks": major
14+
"@web/parse5-utils": major
15+
"@web/polyfills-loader": major
16+
"@web/rollup-plugin-copy": major
17+
"@web/rollup-plugin-html": major
18+
"@web/rollup-plugin-import-meta-assets": major
19+
"@web/rollup-plugin-polyfills-loader": major
20+
"@web/rollup-plugin-workbox": major
21+
"@web/storybook-builder": major
22+
"@web/storybook-framework-web-components": major
23+
"@web/storybook-utils": major
24+
"@web/test-runner": major
25+
"@web/test-runner-browserstack": major
26+
"@web/test-runner-chrome": major
27+
"@web/test-runner-cli": major
28+
"@web/test-runner-commands": major
29+
"@web/test-runner-core": major
30+
"@web/test-runner-coverage-v8": major
31+
"@web/test-runner-junit-reporter": major
32+
"@web/test-runner-mocha": major
33+
"@web/test-runner-module-mocking": major
34+
"@web/test-runner-playwright": major
35+
"@web/test-runner-puppeteer": major
36+
"@web/test-runner-saucelabs": major
37+
"@web/test-runner-selenium": major
38+
"@web/test-runner-visual-regression": major
39+
"@web/test-runner-webdriver": major
40+
---
41+
42+
**BREAKING**: Require Node.js 24 LTS (Iron)
43+
44+
Update minimum Node.js version from 18.0.0 to 24.0.0 across all packages. Node.js 18 reached EOL in April 2025
45+
46+
**Migration:**
47+
Update your Node.js version to 24 or later:
48+
```bash
49+
nvm install 24
50+
nvm use 24
51+
```

.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
v24.11.1

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"url": "https://github.com/modernweb-dev/web.git"
88
},
99
"engines": {
10-
"node": ">=18.0.0"
10+
"node": ">=24.0.0"
1111
},
1212
"scripts": {
1313
"build": "node scripts/fix-jridgewell-dcts.js && rm -rf packages/dev-server-core/node_modules/@types/koa packages/dev-server-core/node_modules/@types/ws && npm run build:clean && tsc --build",

packages/browser-logs/index.mjs

Lines changed: 0 additions & 6 deletions
This file was deleted.

packages/browser-logs/package.json

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@
1717
"exports": {
1818
".": {
1919
"types": "./index.d.ts",
20-
"import": "./index.mjs",
21-
"require": "./dist/index.js"
20+
"default": "./dist/index.js"
2221
}
2322
},
2423
"engines": {
25-
"node": ">=18.0.0"
24+
"node": ">=24.0.0"
2625
},
2726
"scripts": {
2827
"build": "tsc",
@@ -32,7 +31,6 @@
3231
"files": [
3332
"*.d.ts",
3433
"*.js",
35-
"*.mjs",
3634
"dist",
3735
"src"
3836
],
@@ -52,5 +50,6 @@
5250
"devDependencies": {
5351
"@esm-bundle/chai": "^4.1.5",
5452
"puppeteer": "^24.0.0"
55-
}
53+
},
54+
"type": "module"
5655
}

packages/config-loader/index.mjs

Lines changed: 0 additions & 4 deletions
This file was deleted.

packages/config-loader/package.json

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
"author": "modern-web",
1515
"homepage": "https://github.com/modernweb-dev/web/tree/master/packages/config-loader",
1616
"main": "src/index.js",
17-
"type": "commonjs",
17+
"type": "module",
1818
"engines": {
19-
"node": ">=18.0.0"
19+
"node": ">=24.0.0"
2020
},
2121
"scripts": {
2222
"build": "tsc",
@@ -26,7 +26,6 @@
2626
"files": [
2727
"*.d.ts",
2828
"*.js",
29-
"*.mjs",
3029
"dist",
3130
"src"
3231
],
@@ -42,9 +41,8 @@
4241
"types": "dist/index.d.ts",
4342
"exports": {
4443
".": {
45-
"types": "./index.d.ts",
46-
"import": "./index.mjs",
47-
"require": "./src/index.js"
44+
"types": "./dist/index.d.ts",
45+
"default": "./dist/index.js"
4846
}
4947
}
5048
}

packages/dev-server-core/index.mjs

Lines changed: 0 additions & 34 deletions
This file was deleted.

packages/dev-server-core/package.json

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,10 @@
2626
"./test-helpers": {
2727
"types": "./test-helpers.d.ts",
2828
"default": "./dist/test-helpers.js"
29-
},
30-
"./test-helpers.js": {
31-
"types": "./test-helpers.d.ts",
32-
"default": "./dist/test-helpers.js"
3329
}
3430
},
3531
"engines": {
36-
"node": ">=18.0.0"
32+
"node": ">=24.0.0"
3733
},
3834
"scripts": {
3935
"build": "tsc",
@@ -48,7 +44,6 @@
4844
".self-signed-dev-server-ssl.cert",
4945
".self-signed-dev-server-ssl.key",
5046
"*.d.ts",
51-
"*.mjs",
5247
"dist",
5348
"src"
5449
],
@@ -60,24 +55,24 @@
6055
"core"
6156
],
6257
"dependencies": {
63-
"@types/koa": "^2.11.6",
64-
"@types/ws": "^7.4.0",
58+
"@types/koa": "^3.0.1",
59+
"@types/ws": "^8.5.13",
6560
"@web/parse5-utils": "^2.1.0",
6661
"chokidar": "^4.0.1",
6762
"clone": "^2.1.2",
6863
"es-module-lexer": "^1.0.0",
6964
"get-stream": "^6.0.0",
7065
"is-stream": "^2.0.0",
7166
"isbinaryfile": "^5.0.0",
72-
"koa": "^2.16.1",
67+
"koa": "^3.1.1",
7368
"koa-etag": "^4.0.0",
7469
"koa-send": "^5.0.1",
7570
"koa-static": "^5.0.0",
7671
"lru-cache": "^8.0.4",
7772
"mime-types": "^2.1.27",
78-
"parse5": "^6.0.1",
73+
"parse5": "^7.0.0 || ^8.0.0",
7974
"picomatch": "^2.2.2",
80-
"ws": "^7.5.10"
75+
"ws": "^8.18.3"
8176
},
8277
"devDependencies": {
8378
"@types/clone": "^2.1.0",
@@ -88,5 +83,6 @@
8883
"express": "^4.21.2",
8984
"nanoid": "^3.1.25",
9085
"portfinder": "^1.0.32"
91-
}
86+
},
87+
"type": "module"
9288
}

packages/dev-server-core/test-helpers.mjs

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)