Introduction to Node.js
        
        
          Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.
        
        
          ![[Note]](../images/note.png) 
          
            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.20.0/node-v22.20.0.tar.xz
               
- 
              
                Download MD5 sum: 749c5219b26f9961ddf62e0f02e222a1
               
- 
              
                Download size: 48 MB
               
- 
              
                Estimated disk space required: 1.4 GB (add 45 MB for tests)
               
- 
              
                Estimated build time: 14 SBU (add 2.4 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.23
        
        
          Recommended
        
        
          Brotli-1.2.0, c-ares-1.34.5,
          ICU-77.1,
          libuv-1.51.0, and nghttp2-1.68.0
        
        
          Optional
        
        
          http-parser and
          npm (an internal
          copy of npm will be
          installed if not present)
        
        
          ![[Note]](../images/note.png) 
          
            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
        
        
          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 4500 tests, 4 in the
          'parallel' test suite are known to fail.
        
        
          Now, as the root user:
        
        make install &&
ln -sf node /usr/share/doc/node-22.20.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.20.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
                   |