Update Node.js to LTS 22.16.0. (#1563)
This matches the minimum OS requirements set of macOS 11.0 and Windows
10:
https://github.com/nodejs/node/blob/v22.x/BUILDING.md#platform-list
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 4e4667e..2c63a4a 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -63,7 +63,7 @@
# using `--entrypoint /bin/bash` in CLI).
# This corresponds to the env variables set during: `source ./emsdk_env.sh`
ENV EMSDK=/emsdk \
- PATH="/emsdk:/emsdk/upstream/emscripten:/emsdk/node/20.18.0_64bit/bin:${PATH}"
+ PATH="/emsdk:/emsdk/upstream/emscripten:/emsdk/node/22.16.0_64bit/bin:${PATH}"
# ------------------------------------------------------------------------------
# Create a 'standard` 1000:1000 user
diff --git a/emsdk_manifest.json b/emsdk_manifest.json
index 405f442..1d05304 100644
--- a/emsdk_manifest.json
+++ b/emsdk_manifest.json
@@ -157,6 +157,56 @@
{
+ "id": "node",
+ "version": "22.16.0",
+ "bitness": 32,
+ "arch": "x86",
+ "windows_url": "node-v22.16.0-win-x86.zip",
+ "activated_path": "%installation_dir%/bin",
+ "activated_path_skip": "node",
+ "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
+ "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%"
+ },
+ {
+ "id": "node",
+ "version": "22.16.0",
+ "arch": "arm",
+ "bitness": 32,
+ "linux_url": "node-v22.16.0-linux-armv7l.tar.xz",
+ "activated_path": "%installation_dir%/bin",
+ "activated_path_skip": "node",
+ "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
+ "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%"
+ },
+ {
+ "id": "node",
+ "version": "22.16.0",
+ "bitness": 64,
+ "arch": "x86_64",
+ "windows_url": "node-v22.16.0-win-x64.zip",
+ "macos_url": "node-v22.16.0-darwin-x64.tar.gz",
+ "linux_url": "node-v22.16.0-linux-x64.tar.xz",
+ "activated_path": "%installation_dir%/bin",
+ "activated_path_skip": "node",
+ "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
+ "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%"
+ },
+ {
+ "id": "node",
+ "version": "22.16.0",
+ "arch": "arm64",
+ "bitness": 64,
+ "windows_url": "node-v22.16.0-win-arm64.zip",
+ "macos_url": "node-v22.16.0-darwin-arm64.tar.gz",
+ "linux_url": "node-v22.16.0-linux-arm64.tar.xz",
+ "activated_path": "%installation_dir%/bin",
+ "activated_path_skip": "node",
+ "activated_cfg": "NODE_JS='%installation_dir%/bin/node%.exe%'",
+ "activated_env": "EMSDK_NODE=%installation_dir%/bin/node%.exe%"
+ },
+
+
+ {
"id": "python",
"version": "3.9.2-nuget",
"bitness": 64,
@@ -388,19 +438,19 @@
{
"version": "main",
"bitness": 64,
- "uses": ["python-3.13.3-64bit", "llvm-git-main-64bit", "node-20.18.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"],
+ "uses": ["python-3.13.3-64bit", "llvm-git-main-64bit", "node-22.16.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"],
"os": "win"
},
{
"version": "main",
"bitness": 64,
- "uses": ["python-3.13.3-64bit", "llvm-git-main-64bit", "node-20.18.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"],
+ "uses": ["python-3.13.3-64bit", "llvm-git-main-64bit", "node-22.16.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"],
"os": "macos"
},
{
"version": "main",
"bitness": 64,
- "uses": ["llvm-git-main-64bit", "node-20.18.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"],
+ "uses": ["llvm-git-main-64bit", "node-22.16.0-64bit", "emscripten-main-64bit", "binaryen-main-64bit"],
"os": "linux"
},
{
@@ -412,14 +462,14 @@
{
"version": "releases-%releases-tag%",
"bitness": 64,
- "uses": ["node-20.18.0-64bit", "releases-%releases-tag%-64bit"],
+ "uses": ["node-22.16.0-64bit", "releases-%releases-tag%-64bit"],
"os": "linux",
"custom_install_script": "emscripten_npm_install"
},
{
"version": "releases-%releases-tag%",
"bitness": 64,
- "uses": ["node-20.18.0-64bit", "python-3.13.3-64bit", "releases-%releases-tag%-64bit"],
+ "uses": ["node-22.16.0-64bit", "python-3.13.3-64bit", "releases-%releases-tag%-64bit"],
"os": "macos",
"arch": "x86_64",
"custom_install_script": "emscripten_npm_install"
@@ -427,7 +477,7 @@
{
"version": "releases-%releases-tag%",
"bitness": 64,
- "uses": ["node-20.18.0-64bit", "python-3.13.3-64bit", "releases-%releases-tag%-64bit"],
+ "uses": ["node-22.16.0-64bit", "python-3.13.3-64bit", "releases-%releases-tag%-64bit"],
"os": "macos",
"arch": "arm64",
"custom_install_script": "emscripten_npm_install"
@@ -435,7 +485,7 @@
{
"version": "releases-%releases-tag%",
"bitness": 64,
- "uses": ["node-20.18.0-64bit", "python-3.13.3-64bit", "releases-%releases-tag%-64bit"],
+ "uses": ["node-22.16.0-64bit", "python-3.13.3-64bit", "releases-%releases-tag%-64bit"],
"os": "win",
"custom_install_script": "emscripten_npm_install"
}
diff --git a/scripts/update_node.py b/scripts/update_node.py
index 774c38a..722b6ff 100755
--- a/scripts/update_node.py
+++ b/scripts/update_node.py
@@ -18,8 +18,8 @@
import shutil
from zip import unzip_cmd, zip_cmd
-version = '20.18.0'
-base = 'https://nodejs.org/dist/v20.18.0/'
+version = '22.16.0'
+base = f'https://nodejs.org/dist/v{version}/'
upload_base = 'gs://webassembly/emscripten-releases-builds/deps/'
suffixes = [
diff --git a/test/test.py b/test/test.py
index 6d57881..e835ebf 100755
--- a/test/test.py
+++ b/test/test.py
@@ -176,9 +176,9 @@
# Test the normal tools like node don't re-download on re-install
print('another install must re-download')
- checked_call_with_output(emsdk + ' uninstall node-20.18.0-64bit')
- checked_call_with_output(emsdk + ' install node-20.18.0-64bit', expected='Downloading:', unexpected='already installed')
- checked_call_with_output(emsdk + ' install node-20.18.0-64bit', unexpected='Downloading:', expected='already installed')
+ checked_call_with_output(emsdk + ' uninstall node-22.16.0-64bit')
+ checked_call_with_output(emsdk + ' install node-22.16.0-64bit', expected='Downloading:', unexpected='already installed')
+ checked_call_with_output(emsdk + ' install node-22.16.0-64bit', unexpected='Downloading:', expected='already installed')
def test_tot_upstream(self):
print('test update-tags')