#### Beyond Linux® From Scratch (System V Edition) - Version r12.2-875

### Chapter 9. General Libraries

- Prev

  mtdev-1.1.7

- Next

  npth-1.8

- Up
- Home

# Node.js-22.12.0

## Introduction to Node.js

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

### Note

Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

### Package Information

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

- Download MD5 sum: 2f2bb89e9657a89015c902d76d604164

- Download size: 46 MB

- Estimated disk space required: 1.3 GB (add 45 MB for tests)

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

### Node.js Dependencies

#### Required

Which-2.21

#### Recommended

Brotli-1.1.0, c-ares-1.34.4, ICU-76.1, libuv-1.49.2, and nghttp2-1.64.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.

## Installation of Node.js

First, fix building this package with ICU-76:

    sed '/pkgicu/s/icu-i18n/& icu-uc/' -i configure.py

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 4200 tests, 7 in the 'parallel' test suite are known to fail.

Now, as the `root` user:

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

## Command Explanations

`--with-intl=system-icu`: use 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}`: use the system installed libraries instead of local copies.

`--without-npm`: do not build npm (use if you'd like to build a separate npm later).

`--shared-http-parser`: use the system installed library instead of a local copy.

## 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.12.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
`/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