Installing Node.js NES
How to install Node.js NES
Listing Available Versions
| Version | Linux x64 | Darwin x64 | Darwin ARM | Windows x64 | RHEL 8 x64 |
|---|---|---|---|---|---|
| v12 | ✅ | ✅ | ❌ | ✅ | ❌ |
| v14 | ✅ | ✅ | ❌ | ✅ | ❌ |
| v16 | ✅ | ✅ | ✅ | ✅ | ❌ |
| v18 | ✅ | ✅ | ✅ | ✅ | ✅ |
| v20 | ✅ | ✅ | ✅ | ✅ | ❌ |
| v22 | ✅ | ✅ | ✅ | ✅ | ❌ |
To retrieve the full list of available versions, including trials, run the following command in your terminal:
Note
You must pass in a valid token for the endpoint to return non-trial versions
curl -H "Authorization: Bearer <token>" https://registry.nes.herodevs.com/nodejs/nes/index.tab
Download Node.js
Node.js NES can be downloaded and installed in several ways. This guide highlights the most common and convenient methods.
Using NVM
The fastest way to download Node.js on Linux and MacOS is through NVM.
NVM Windows is not supported, it is recommended to use the wget method instead. Make sure the NVM version is 0.40.0 or higher. You can check your NVM version by running
nvm --version.
export NVM_NODEJS_ORG_MIRROR=https://registry.nes.herodevs.com/nodejs/nes/
export NVM_AUTH_HEADER="Bearer <token>"
nvm ls-remote # check all the available versions
nvm install v16.20.5-nes
nvm use v16.20.5-nes
Alternatively, you can download the binary using curl or wget.
Using curl
To download the binary, your curl command should be formatted like the following:
# Outputs the a tarball or zip to the current working directory
curl -sL -O -H "Authorization: Bearer <token>" ARTIFACT_URL
For example, to download the Node.js 16 NES, choose your platform and then run the associated curl command:
curl -sL -O -H "Authorization: Bearer <token>" https://registry.nes.herodevs.com/nodejs/nes/v16.20.5-nes/node-v16.20.5-nes-darwin-arm64.tar.gz
Using wget
Alternatively, you can use wget to download the binary. The format is as follows:
# Outputs the a tarball or zip to the current working directory
wget --header="Authorization: Bearer <token>" ARTIFACT_URL
For example, to download the Node.js 16 NES, choose your platform and then run the associated wget command:
wget --header="Authorization: Bearer <token>" https://registry.nes.herodevs.com/nodejs/nes/v16.20.5-nes/node-v16.20.5-nes-darwin-arm64.tar.gz
Dependending on the version you want to download, you may replace the version, platforms, or architecture with the following values:
- Versions:
v12.22.12-nes,v14.21.3-nes,v16.20.2-nes,v18.20.6-trial-nes - Platforms:
darwinorlinux. - Architectures:
arm64orx64. - Extensions:
.zipor.tar.gz.
Note: Because Node v18 is being adopted before its End‑of‑Life, we prepend
-trialto the version number before the-nessuffix. Remove-trialif you will be installing other versions.
Example: v18.20.6-trial-nes.
RHEL 8 installation
To install Node.js NES on RHEL 8, you can download the following rpm package:
curl -sL -O -H "Authorization: Bearer <token>" https://registry.nes.herodevs.com/nodejs/nes/v18.20.12-nes/node-devel-v18.20.12-nes.el8.x86_64.rpm
curl -sL -O -H "Authorization: Bearer <token>" https://registry.nes.herodevs.com/nodejs/nes/v18.20.12-nes/node-docs-v18.20.12-nes.el8.noarch.rpm
curl -sL -O -H "Authorization: Bearer <token>" https://registry.nes.herodevs.com/nodejs/nes/v18.20.12-nes/node-full-i18n-v18.20.12-nes.el8.x86_64.rpm
curl -sL -O -H "Authorization: Bearer <token>" https://registry.nes.herodevs.com/nodejs/nes/v18.20.12-nes/node-v18.20.12-nes.el8.x86_64.rpm
curl -sL -O -H "Authorization: Bearer <token>" https://registry.nes.herodevs.com/nodejs/nes/v18.20.12-nes/npm-10.8.2-v18.20.12-nes.el8.x86_64.rpm
dnf install node-devel-v18.20.12-nes.el8.x86_64.rpm
dnf install node-docs-v18.20.12-nes.el8.noarch.rpm
dnf install node-full-i18n-v18.20.12-nes.el8.x86_64.rpm
dnf install node-v18.20.12-nes.el8.x86_64.rpm
dnf install npm-10.8.2-v18.20.12-nes.el8.x86_64.rpm
HeroDevs also provides the dependencies for Node.js NES on RHEL 8:
curl -Lo /etc/yum.repos.d/home:herodevs.repo https://download.opensuse.org/repositories/home:herodevs/CentOS_8/home:herodevs.repo
yum install -y libuv libuv-devel brotli brotli-devel nghttp2 libnghttp2-devel procps-ng
AWS Lambda installation
You can run Node.js NES in AWS Lambda by building a custom container image based on the Lambda provided.al2023 base.
Note that older NES version may not work on the Amazon Linux 2023 base image and might require the Amazon Linux 2 base instead.
Prerequisites
- An NES registry token with download access
- AWS CLI configured for the target account
FROM public.ecr.aws/amazonlinux/amazonlinux:2023
# Pin the Node.js NES version you want inside Lambda
ARG NODE_VERSION=v20.19.14-nes
# Provide your NES token at build time: --build-arg NES_TOKEN=...
ARG NES_TOKEN
ARG REGISTRY_BASE=https://registry.nes.herodevs.com/nodejs/nes
ENV NODE_DIR=/opt/node
RUN dnf install -y --allowerasing \
ca-certificates \
tar \
gzip \
shadow-utils \
curl \
cmake \
make \
gcc \
gcc-c++ \
python3 \
autoconf \
automake \
libtool \
&& dnf clean all
# Install Node.js NES
RUN curl -fSL -H "Authorization: Bearer ${NES_TOKEN}" "${REGISTRY_BASE}/${NODE_VERSION}/node-${NODE_VERSION}-linux-x64.tar.gz" -o /tmp/node.tgz \
&& mkdir -p ${NODE_DIR} \
&& tar -xzf /tmp/node.tgz -C ${NODE_DIR} --strip-components=1 \
&& rm /tmp/node.tgz
ENV PATH="${NODE_DIR}/bin:${PATH}" \
npm_config_nodedir=${NODE_DIR} \
npm_config_prefix=${NODE_DIR}
RUN node --version
RUN npm install -g aws-lambda-ric@3
COPY index.js ./
ENV AWS_EXECUTION_ENV=AWS_Lambda_nodejs20.x
ENTRYPOINT ["/opt/node/bin/node", "/opt/node/lib/node_modules/aws-lambda-ric/bin/index.mjs"]
CMD ["index.handler"]