Read more

How to install npm packages globally without sudo on Linux

Dominik Schöler
May 28, 2019Software engineer at makandra GmbH

We use NVM instead, where this is not an issue.

All quoted.

  1. Set up a package root in your homedir to hold the Node "global" packages:

    $ NPM_PACKAGES="$HOME/.npm-packages"
    $ mkdir -p "$NPM_PACKAGES"
    
  2. Set NPM to use this directory for its global package installs:

    $ echo "prefix = $NPM_PACKAGES" >> ~/.npmrc
    
  3. Configure your PATH and MANPATH to see commands in your $NPM_PACKAGES prefix by adding the following to your .bashrc:

    # NPM packages in homedir
    NPM_PACKAGES="$HOME/.npm-packages"
    
    # Tell our environment about user-installed node tools
    PATH="$NPM_PACKAGES/bin:$PATH"
    # Unset manpath so we can inherit from /etc/manpath via the `manpath` command
    unset MANPATH  # delete if you already modified MANPATH elsewhere in your configuration
    MANPATH="$NPM_PACKAGES/share/man:$(manpath)"
    
    # Tell Node about these packages
    NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
    
Illustration UI/UX Design

UI/UX Design by makandra brand

We make sure that your target audience has the best possible experience with your digital product. You get:

  • Design tailored to your audience
  • Proven processes customized to your needs
  • An expert team of experienced designers
Read more Show archive.org snapshot

Now when you do an npm install -g, NPM will install the libraries into ~/.npm-packages/lib/node_modules link executable tools into ~/.npm-packages/bin, which is in your PATH.

Posted by Dominik Schöler to makandra dev (2019-05-28 15:06)