diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 95893dca79..f98001dd61 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -24,7 +24,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v4 with: - node-version: '20.18.1' + node-version: '20.9.0' # earliest node version we support (via "engines" in package.json) cache: 'yarn' - name: Install dependencies diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index d03a8386d1..54dcf73e2f 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -33,7 +33,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v4 with: - node-version: '20.18.1' + node-version: '20.9.0' # earliest node version we support (via "engines" in package.json) cache: 'yarn' # Needed for local browser integration tests diff --git a/.github/workflows/karma.yml b/.github/workflows/karma.yml index 6d57464ad0..02b5d92ece 100644 --- a/.github/workflows/karma.yml +++ b/.github/workflows/karma.yml @@ -22,7 +22,7 @@ env: PUPPETEER_SKIP_DOWNLOAD: 'true' # only needed for @best/runner-local, unused here GITHUB_RUN_ID: ${{github.run_id}} COVERAGE: '1' - NODE_VERSION: '20.18.1' + NODE_VERSION: '20.9.0' # earliest node version we support (via "engines" in package.json) jobs: run-karma-tests-group-1: diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml index defd1db8f4..9a85410dc6 100644 --- a/.github/workflows/unit.yml +++ b/.github/workflows/unit.yml @@ -29,7 +29,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v4 with: - node-version: '20.18.1' + node-version: '20.9.0' # earliest node version we support (via "engines" in package.json) cache: 'yarn' # Needed for perf smoke tests, matches the chromedriver version installed by tachometer (https://github.com/google/tachometer/blob/main/README.md#on-demand-dependencies) diff --git a/package.json b/package.json index 0b98e31fe2..dae56ed7dc 100644 --- a/package.json +++ b/package.json @@ -86,11 +86,9 @@ "packages/lwc", "playground" ], - "engines": { - "node": ">=10" - }, "volta": { - "node": "20.18.1", + "//": "Earliest node version we support (via \"engines\" in package.json)", + "node": "20.9.0", "yarn": "1.22.22" }, "resolutions": { diff --git a/packages/@lwc/aria-reflection/package.json b/packages/@lwc/aria-reflection/package.json index d0dd70fc0d..790e723732 100644 --- a/packages/@lwc/aria-reflection/package.json +++ b/packages/@lwc/aria-reflection/package.json @@ -26,6 +26,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/babel-plugin-component/package.json b/packages/@lwc/babel-plugin-component/package.json index 24c62cbeaf..627c5677e6 100644 --- a/packages/@lwc/babel-plugin-component/package.json +++ b/packages/@lwc/babel-plugin-component/package.json @@ -22,6 +22,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/compiler/package.json b/packages/@lwc/compiler/package.json index abd56ce4c9..fe1c157b61 100644 --- a/packages/@lwc/compiler/package.json +++ b/packages/@lwc/compiler/package.json @@ -22,6 +22,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/engine-core/package.json b/packages/@lwc/engine-core/package.json index 94f70dc657..1d3456cf75 100644 --- a/packages/@lwc/engine-core/package.json +++ b/packages/@lwc/engine-core/package.json @@ -22,6 +22,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/engine-dom/package.json b/packages/@lwc/engine-dom/package.json index 4b7bc1ea82..6d00114676 100644 --- a/packages/@lwc/engine-dom/package.json +++ b/packages/@lwc/engine-dom/package.json @@ -22,6 +22,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/engine-server/package.json b/packages/@lwc/engine-server/package.json index ff01f82a86..1c33dd27c5 100644 --- a/packages/@lwc/engine-server/package.json +++ b/packages/@lwc/engine-server/package.json @@ -22,6 +22,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/errors/package.json b/packages/@lwc/errors/package.json index faa970971f..c60fa6edc9 100644 --- a/packages/@lwc/errors/package.json +++ b/packages/@lwc/errors/package.json @@ -22,6 +22,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/features/package.json b/packages/@lwc/features/package.json index df8375d977..b8832088fb 100644 --- a/packages/@lwc/features/package.json +++ b/packages/@lwc/features/package.json @@ -22,6 +22,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/module-resolver/package.json b/packages/@lwc/module-resolver/package.json index db909310ef..eb40c768f8 100644 --- a/packages/@lwc/module-resolver/package.json +++ b/packages/@lwc/module-resolver/package.json @@ -22,6 +22,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/rollup-plugin/package.json b/packages/@lwc/rollup-plugin/package.json index f63f45f08f..b3f50c116a 100644 --- a/packages/@lwc/rollup-plugin/package.json +++ b/packages/@lwc/rollup-plugin/package.json @@ -22,6 +22,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/shared/package.json b/packages/@lwc/shared/package.json index fd76a8c76d..2e5c39ffb0 100644 --- a/packages/@lwc/shared/package.json +++ b/packages/@lwc/shared/package.json @@ -22,6 +22,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/signals/package.json b/packages/@lwc/signals/package.json index 739da00f01..a6bb247a73 100644 --- a/packages/@lwc/signals/package.json +++ b/packages/@lwc/signals/package.json @@ -22,6 +22,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/ssr-compiler/package.json b/packages/@lwc/ssr-compiler/package.json index 5e8c0cd0b7..a56678b928 100644 --- a/packages/@lwc/ssr-compiler/package.json +++ b/packages/@lwc/ssr-compiler/package.json @@ -24,6 +24,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/ssr-runtime/package.json b/packages/@lwc/ssr-runtime/package.json index ce700f77e5..472f665d0d 100644 --- a/packages/@lwc/ssr-runtime/package.json +++ b/packages/@lwc/ssr-runtime/package.json @@ -24,6 +24,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/style-compiler/package.json b/packages/@lwc/style-compiler/package.json index faf5591082..50ce7a2b1e 100644 --- a/packages/@lwc/style-compiler/package.json +++ b/packages/@lwc/style-compiler/package.json @@ -22,6 +22,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/synthetic-shadow/package.json b/packages/@lwc/synthetic-shadow/package.json index 569e22a0d6..4275151ce0 100644 --- a/packages/@lwc/synthetic-shadow/package.json +++ b/packages/@lwc/synthetic-shadow/package.json @@ -22,6 +22,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/template-compiler/package.json b/packages/@lwc/template-compiler/package.json index 0e298213f9..5479e5655b 100644 --- a/packages/@lwc/template-compiler/package.json +++ b/packages/@lwc/template-compiler/package.json @@ -22,6 +22,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/types/package.json b/packages/@lwc/types/package.json index 1aa4d7f9e2..014a74b8ff 100644 --- a/packages/@lwc/types/package.json +++ b/packages/@lwc/types/package.json @@ -24,6 +24,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/packages/@lwc/wire-service/package.json b/packages/@lwc/wire-service/package.json index d3f9d416fa..40bd7b2eb1 100644 --- a/packages/@lwc/wire-service/package.json +++ b/packages/@lwc/wire-service/package.json @@ -22,6 +22,9 @@ "publishConfig": { "access": "public" }, + "engines": { + "node": ">=20.9.0" + }, "volta": { "extends": "../../../package.json" }, diff --git a/scripts/tasks/check-and-rewrite-package-json.js b/scripts/tasks/check-and-rewrite-package-json.js index 25d6db1ed6..f05df3505e 100644 --- a/scripts/tasks/check-and-rewrite-package-json.js +++ b/scripts/tasks/check-and-rewrite-package-json.js @@ -106,6 +106,9 @@ for (const dir of globSync('./packages/@lwc/*')) { bugs: { url: 'https://github.com/salesforce/lwc/issues' }, license: 'MIT', publishConfig: { access: 'public' }, + engines: { + node: '>=20.9.0', + }, // Use the same volta config in every subdirectory so that we always get the same node/yarn versions // See: https://docs.volta.sh/advanced/workspaces volta: {