Node.js-22.22.0

#### Beyond Linux® From Scratch (systemd Edition) - Version 13.0

### Chapter 9. General Libraries

- Prev

  mtdev-1.1.7

- Next

  npth-1.8

- Up
- Home

# Node.js-22.22.0

## Introduction to Node.js

Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.

### Note

This package is known to build and work properly using an LFS 13.0 platform.

### Package Information

- Download (HTTP): https://nodejs.org/dist/v22.22.0/node-v22.22.0.tar.xz

- Download MD5 sum: cbbbbb20f7748b946b27a3dd88409098

- Download size: 49 MB

- Estimated disk space required: 1.4 GB (add 46 MB for tests)

- Estimated build time: 14 SBU (add 4.7 SBU for tests: both using parallelism=8 and 8 CPUs online, parts of the tests will use all online CPUs)

### Additional Downloads

- Required patch: https://www.linuxfromscratch.org/patches/blfs/13.0/node-v22.22.0-python_build_fix-1.patch

### Node.js Dependencies

#### Required

Which-2.23

#### Recommended

Brotli-1.2.0, c-ares-1.34.6, ICU-78.2, libuv-1.52.0, and nghttp2-1.68.0

#### Optional

http-parser and npm (an internal copy of npm will be installed if not present)

### Note

An Internet connection is needed for some tests of this package. The system certificate store may need to be set up with make-ca-1.16.1 before testing this package.

## Installation of Node.js

First, fix building this package with Python 3.14:

    patch -Np1 -i ../node-v22.22.0-python_build_fix-1.patch

Build Node.js by running the following commands:

    ./configure --prefix=/usr          \
                --shared-brotli        \
                --shared-cares         \
                --shared-libuv         \
                --shared-openssl       \
                --shared-nghttp2       \
                --shared-zlib          \
                --with-intl=system-icu &&
    make

To test the results, issue: make test-only. Out of over 4600 tests, about 10 in the 'parallel' test suite are known to fail. Some failures are due to assumptions about dependent packages like icu and nghttp2 versions that are earlier than what is in BLFS. Also note that if you pass a high parallelism option (like -j20; -j8 is fine) to the test procedure, additional tests will run out of memory and fail.

Now, as the `root` user:

    make install &&
    ln -sf node /usr/share/doc/node-22.22.0

## Command Explanations

`--with-intl=system-icu`: This parameter uses the system version of ICU. Other values are `full-icu` (to build a local, full icu library) and `small-icu` (to build a local, minimal ICU library).

`--shared-{brotli,cares,libuv,nghttp2,openssl,zlib}`: This parameter uses the system installed libraries instead of local copies.

`--without-npm`: This option tells the build system to not build npm (use if you'd like to build a separate npm later).

`--shared-http-parser`: This option uses the system installed http-parser library instead of a local copy if you have installed it.

## Contents

Installed Programs: corepack, node, npm, and npx
Installed Library: None
Installed Directories: /usr/include/node, /usr/lib/node_modules/{corepack,npm}, /usr/share/doc/{node,node-22.22.0}, and /usr/share/systemtap/tapset

### Short Descriptions

corepack | is an experimental tool to help with managing versions of package managers.
node | is the server-side JavaScript runtime
npm | is the Node.js package manager
npx | is short for `npm exec`, which allows running commands from NPM packages
`/usr/lib/node_modules/npm/` | is the installation root for Node.js executables and libraries

- Prev

  mtdev-1.1.7

- Next

  npth-1.8

- Up
- Home