Since the nix store is immutable and cannot be modified, you need to define a writable location for NPM packages to be installed globally.

Install NodeJS if you haven’t already.

Add the following to your ~/.npmrc to have it put the packages in the ~/.npm-packages folder:

prefix = ${HOME}/.npm-packages

You need to add the npm bin folder to your PATH in your shell’s rc file (i.e. .bashrc or .zshrc for example, so you can access the executables:

export PATH=~/.npm-packages/bin:$PATH

You also need to add the NODE_PATH to the same file:

export NODE_PATH=~/.npm-packages/lib/node_modules

Doing a source ./zshrc will allow you to not have to reload your terminal session (assuming you are using zsh for your shell, change to whatever you are using).

Tags: ,