Introduction to Node.js
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.
Note
This version of BLFS may not build or run
some packages properly if LFS or dependencies have been updated
since the most recent stable version of the System V
books.
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
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
|