Skip to content

Commit 4087728

Browse files
committed
feat(@angular/cli): support for Node.js v22
Add support for Node.js v22
1 parent ffb5428 commit 4087728

File tree

6 files changed

+31
-5
lines changed

6 files changed

+31
-5
lines changed

.github/workflows/ci.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,20 +113,25 @@ jobs:
113113
fail-fast: false
114114
matrix:
115115
os: [ubuntu-latest, windows-latest]
116-
node: [18, 20]
116+
node: [18, 20, 22]
117117
subset: [npm, yarn, esbuild]
118118
shard: [0, 1, 2, 3, 4, 5]
119119
exclude:
120120
# Exclude Node.js v18 when running on a PR
121121
- node: ${{ github.event_name != 'pull_request' && 'none' || '18' }}
122+
# Exclude Node.js v20 when running on a PR
123+
- node: ${{ github.event_name != 'pull_request' && 'none' || '20' }}
122124
# Exclude Windows when running on a PR
123125
- os: ${{ github.event_name != 'pull_request' && 'none' || 'windows-latest' }}
124126
# Skip yarn subset on Windows
125127
- os: windows-latest
126128
subset: yarn
127-
# Skip node 18 tests on Windows
129+
# Skip Node.js v18 tests on Windows
128130
- os: windows-latest
129131
node: 18
132+
# Skip Node.js v20 tests on Windows
133+
- os: windows-latest
134+
node: 20
130135
runs-on: ${{ matrix.os }}
131136
steps:
132137
- name: Initialize environment

WORKSPACE

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,21 @@ nodejs_register_toolchains(
9191
node_version = "20.11.1",
9292
)
9393

94+
nodejs_register_toolchains(
95+
name = "node22",
96+
# The below can be removed once @rules_nodejs/nodejs is updated to latest which contains https://github.com/bazelbuild/rules_nodejs/pull/3701
97+
node_repositories = {
98+
"22.0.0-darwin_arm64": ("node-v22.0.0-darwin-arm64.tar.gz", "node-v22.0.0-darwin-arm64", "ea96d349cfaa67aa87ceeaa3e5b52c9167f7ac302fd8d1ff162d0785e9dc0785"),
99+
"22.0.0-darwin_amd64": ("node-v22.0.0-darwin-x64.tar.gz", "node-v22.0.0-darwin-x64", "422a3887ff5418f0a4552d89cf99346ab8ab51bb5d384660baa88b8444d2c111"),
100+
"22.0.0-linux_arm64": ("node-v22.0.0-linux-arm64.tar.xz", "node-v22.0.0-linux-arm64", "83711d29cbe46375bdffab5419f3d831892e24294169272f6c39edc364556241"),
101+
"22.0.0-linux_ppc64le": ("node-v22.0.0-linux-ppc64le.tar.xz", "node-v22.0.0-linux-ppc64le", "2b3fb8707a79243bfb3131312b86716ddc3855bce21bb168095b6b916798e5e9"),
102+
"22.0.0-linux_s390x": ("node-v22.0.0-linux-s390x.tar.xz", "node-v22.0.0-linux-s390x", "89a8efeeb9f94ce9ea251b8109e079c14919f4c0dc2cbc9f545ec47ef0886737"),
103+
"22.0.0-linux_amd64": ("node-v22.0.0-linux-x64.tar.xz", "node-v22.0.0-linux-x64", "9122e50f2642afd5f6078cafd1f52ede60fc464284384f05c18a04d13d07ae5a"),
104+
"22.0.0-windows_amd64": ("node-v22.0.0-win-x64.zip", "node-v22.0.0-win-x64", "32d639b47d4c0a651ff8f8d7d41a454168a3d4045be37985f9a810cf8cef6174"),
105+
},
106+
node_version = "22.0.0",
107+
)
108+
94109
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
95110

96111
yarn_install(

constants.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Engine versions to stamp in a release package.json
2-
RELEASE_ENGINES_NODE = "^18.19.1 || >=20.11.1"
2+
RELEASE_ENGINES_NODE = "^18.19.1 || ^20.11.1 || >=22.0.0"
33
RELEASE_ENGINES_NPM = "^6.11.0 || ^7.5.6 || >=8.0.0"
44
RELEASE_ENGINES_YARN = ">= 1.13.0"
55

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"url": "https://github.com/angular/angular-cli.git"
3232
},
3333
"engines": {
34-
"node": "^18.19.1 || >=20.11.1",
34+
"node": "^18.19.1 || ^20.11.1 || >=22.0.0",
3535
"yarn": ">=1.21.1 <2",
3636
"npm": "Please use yarn instead of NPM to install dependencies"
3737
},

packages/angular/cli/src/commands/version/cli.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ interface PartialPackageInfo {
2323
/**
2424
* Major versions of Node.js that are officially supported by Angular.
2525
*/
26-
const SUPPORTED_NODE_MAJORS = [18, 20];
26+
const SUPPORTED_NODE_MAJORS = [18, 20, 22];
2727

2828
const PACKAGE_PATTERNS = [
2929
/^@angular\/.*/,

tools/toolchain_info.bzl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
TOOLCHAINS_NAMES = [
66
"node18",
77
"node20",
8+
"node22",
89
]
910

1011
# this is the list of toolchains that should be used and are registered with nodejs_register_toolchains in the WORKSPACE file
@@ -19,6 +20,11 @@ TOOLCHAINS_VERSIONS = [
1920
"@bazel_tools//src/conditions:darwin": "@node20_darwin_amd64//:node_toolchain",
2021
"@bazel_tools//src/conditions:windows": "@node20_windows_amd64//:node_toolchain",
2122
}),
23+
select({
24+
"@bazel_tools//src/conditions:linux_x86_64": "@node22_linux_amd64//:node_toolchain",
25+
"@bazel_tools//src/conditions:darwin": "@node22_darwin_amd64//:node_toolchain",
26+
"@bazel_tools//src/conditions:windows": "@node22_windows_amd64//:node_toolchain",
27+
}),
2228
]
2329

2430
# A default toolchain for use when only one is necessary

0 commit comments

Comments
 (0)