How to Install Node.js and NPM on FreeBSD 14.0

Updated on 11 August, 2026
Learn how to install Node.js and NPM on FreeBSD 14.0 with step-by-step instructions. Get your JavaScript development environment running smoothly on FreeBSD.
How to Install Node.js and NPM on FreeBSD 14.0 header image

Node.js is an open-source JavaScript runtime built on Chrome's V8 JavaScript engine that enables developers to build scalable network applications. NPM (Node Package Manager) is bundled with Node.js and manages project dependencies on a server.

This article explains how to install Node.js and NPM on a FreeBSD 14.0 server. It covers installing Node.js from the ports collection and from the pkg package manager, installing NPM, and managing multiple versions with the Node Version Manager (NVM).

Prerequisites

Before you begin, you need to:

Choosing a Node.js Version

Choosing the right Node.js version for your project is necessary. Node.js comes in various versions, including the latest, LTS (Long-Term Support), and previous versions that cater to different needs. Below are the supported distributions to consider when choosing a Node.js version.

  • Latest: Includes the latest features and improvements.
  • LTS: Stable and recommended for most users.
  • Previous: Useful when you require compatibility with older projects.

Install Node.js

Node.js is available on FreeBSD 14.0 with two installation procedures using the default pkg package manage or ports collections. FreeBSD ports include the latest Node.js versions while the pkg package manager contains specific stable versions. Follow the sections below to install Node.js on your server depending on your target version.

Install Node.js Using Ports

FreeBSD ports collections allow you to build and install applications from source code. A collection offers a standardized framework and a variety of ports that contain all necessary files and instructions to download, compile, and install specific applications on your server. In the following steps, update your FreeBSD ports collection and install Node.js on your server.

  1. Update the pkg repository catalog.

    console
    $ sudo pkg update
    
  2. Install the portsnap package to fetch and update the default FreeBSD ports collection.

    console
    $ sudo pkg install portsnap
    
  3. Create the /var/db/portsnap directory to store snapshots of the ports tree.

    console
    $ sudo mkdir -p /var/db/portsnap
    
  4. Update the ports tree to get all available Node.js versions.

    console
    $ sudo portsnap fetch extract
    
  5. List all Node.js port versions available in the /usr/ports/www directory.

    console
    $ sudo ls -l /usr/ports/www/ | grep node
    

    Output:

    drwxr-xr-x  3 root wheel   512 Jun 15 09:53 node18
    drwxr-xr-x  3 root wheel   512 Jun 15 09:53 node20
    drwxr-xr-x  3 root wheel   512 Jun 15 09:53 node22
    drwxr-xr-x  2 root wheel   512 Jun 15 09:53 npm-node18
    drwxr-xr-x  2 root wheel   512 Jun 15 09:53 npm-node20
    drwxr-xr-x  2 root wheel   512 Jun 15 09:53 npm-node22

    Each nodeXX directory is a Node.js release line, with a matching npm-nodeXX port that provides NPM for that line.

  6. Switch to your desired Node.js version directory. For example, version 18.

    console
    $ cd /usr/ports/www/node18
    
  7. Build and install Node.js from the ports collection.

    console
    $ sudo make install clean BATCH=yes MAKE_JOBS_UNSAFE=yes
    

    During the installation, the BATCH=yes option accepts all installation prompts while MAKE_JOBS_UNSAFE=yes disables parallel building and forces the port to compile with a single job. FreeBSD builds ports in parallel by default, so set this option only when a port fails with intermittent errors under a parallel build. When successful, your output should look like the one below.

    ===>  Installing for node18-18.20.3
    ===>  Checking if node18 is already installed
    ===>   Registering installation for node18-18.20.3
    Installing node18-18.20.3...
  8. View the installed Node.js version.

    console
    $ node --version
    

    Output:

    v18.20.3
    Note
    Compiling the Node.js version in your ports collection takes between 2 to 3 hours to complete depending on your system's resources.

Install Node.js Using the pkg Package Manager

Node.js is available in the default pkg repositories on your FreeBSD server. However, the available versions may not be the latest. Follow the steps below to verify all available versions and install Node.js on your server.

  1. Update the pkg repository catalog.

    console
    $ sudo pkg update
    
  2. Search all the available Node.js versions.

    console
    $ sudo pkg search ^node
    

    Your output should look like the one below.

    node-20.12.2_1                 V8 JavaScript for client and server (meta port)
    node-thrift-0.16.0_3           Node.js bindings for the Apache Thrift RPC system
    node18-18.20.2                 V8 JavaScript for client and server
    node20-20.12.2                 V8 JavaScript for client and server
    node21-21.7.3                  V8 JavaScript for client and server
    node_exporter-1.6.1_6          Prometheus exporter for machine metrics
  3. Install your desired Node.js version. For example, Node.js version 21.

    console
    $ sudo pkg install node21
    
  4. View the installed Node.js version on your server.

    console
    $ node --version
    

    Output:

    v21.7.3

Install the Node Package Manager (NPM)

NPM is the default Node.js package manager that allows you to manage and install backend packages on your server. It's bundled and installed with the Node.js package when using the pkg package manager. When using FreeBSD ports, install NPM as described in the following steps.

  1. Verify if NPM is available on your server.

    console
    $ sudo npm --version
    

    Output:

    -sh: npm: not found
  2. Navigate to the NPM port directory to install a specific version on your server. For example, switch to the NPM directory for Node.js version 18

    console
    $ cd /usr/ports/www/npm-node18
    
  3. Build and install NPM on your server.

    console
    $ sudo make install clean BATCH=yes MAKE_JOBS_UNSAFE=yes
    
  4. When using the pkg package manager, run the following command to view all available versions.

    console
    $ sudo pkg search ^npm
    

    Output:

    npm-10.5.1                     Node package manager (meta port)
    npm-node18-10.5.1              Node package manager
    npm-node20-10.5.1              Node package manager
    npm-node21-10.5.1              Node package manager
    npmount-0.1.1.3_1              Command line tool for non-privileged [un]mount
  5. Install a specific NPM version based on the available packages. For example, run the following command to install the latest available version.

    console
    $ sudo pkg install npm
    

Test Node.js

Running a short script confirms that the runtime executes JavaScript and that the node command resolves in your shell.

  1. Create a new test application file app.js to output a Hello World! Greetings from Vultr prompt when loaded.

    console
    $ echo 'console.log("Hello World! Greetings from Vultr");' > app.js
    
  2. Run the app.js file using Node.js.

    console
    $ node app.js
    

    Output:

    Hello World! Greetings from Vultr

Install Multiple Versions

NVM (Node Version Manager) is a Node.js management utility that simplifies the process of switching between Node.js versions for various projects. Follow the steps below to install NVM, install, and switch between multiple Node.js versions on your server.

  1. Install all required dependencies on your server.

    console
    $ sudo pkg install curl bash gcc
    
  2. Download the latest installation script from the official NVM repository on your server.

    console
    $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh
    
  3. Run the installation script to install NVM on your server.

    console
    $ sudo bash install.sh
    
  4. Run the following commands to add NVM to your shell profile and automatically load it in every terminal session. Replace user with your actual system user.

    console
    $ echo 'export NVM_DIR="$HOME/.nvm"' >> /home/user/.bashrc
    
    console
    $ echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> /home/user/.bashrc
    
  5. Reload your shell profile to apply changes.

    console
    $ source ~/.bashrc
    
  6. View the installed NVM version on your server.

    console
    $ nvm --version
    

    Output:

    0.39.1
  7. Create a new MAKE_JOBS environment variable depending on the number of CPU cores available on your system to speed up the compilation process while running multiple jobs in parallel.

    console
    $ export MAKE_JOBS=$(sysctl -n hw.ncpu)
    
  8. Install a specific Node.js version on your server using NVM. For example, Node.js version 21.0.0.

    console
    $ nvm install 21.0.0
    
  9. View the installed Node.js version.

    console
    $ node --version
    

    Output:

    v21.0.0
  10. View the installed NPM version.

    console
    $ npm --version
    

    Output:

    10.2.0
  11. Install another Node.js version such as 17.0.0.

    console
    $ nvm install 17.0.0
    
  12. Install the latest LTS Node.js version.

    console
    $ nvm install --lts
    
  13. Install the latest stable Node.js version.

    console
    $ nvm install node
    
  14. List all available Node.js versions on your server.

    console
    $ nvm ls
    

    Output:

    ->      v21.0.0
            v17.0.0
    default -> 17.0.0 (-> v17.0.0)
    node -> stable (-> v21.0.0) (default)
    stable -> 21.0 (-> v21.0.0) (default)
    lts/* -> lts/iron (-> N/A)
  15. Run the following command to enable a specific Node.js version on your server. For example, Node.js version 21.0.0.

    console
    $ nvm use 21.0.0
    
  16. Set the default Node.js version to use on your server.

    console
    $ nvm alias default 21.0.0
    
  17. Run the following command to remove a specific version. For example, Node.js version 17.0.0.

    console
    $ nvm uninstall 17.0.0
    

Conclusion

You have installed Node.js and NPM on a FreeBSD 14.0 server and managed multiple versions using NVM to ensure flexibility between projects. You can use Node.js to build flexible and powerful applications on your server depending on your development needs. For more configurations and additional modules such as Express, visit the Node.js documentation.

Comments