This commit is contained in:
alsaiduq-lab 2025-04-01 18:51:00 -06:00
parent ad06ac826e
commit 62efd21ccb

View file

@ -4,8 +4,9 @@
lib, lib,
... ...
}: let }: let
npmGlobalDir = "$HOME/.npm-global";
npmConf = pkgs.writeText "npmrc" '' npmConf = pkgs.writeText "npmrc" ''
prefix=${config.environment.variables.NPM_CONFIG_PREFIX} prefix=${npmGlobalDir}
cache=$HOME/.npm cache=$HOME/.npm
init-module=$HOME/.npm-init.js init-module=$HOME/.npm-init.js
node-linker=hoisted node-linker=hoisted
@ -20,18 +21,18 @@ in {
nodePackages.npm nodePackages.npm
]; ];
environment.variables = { environment.variables = {
NPM_CONFIG_PREFIX = "$HOME/.npm-global"; NPM_CONFIG_PREFIX = npmGlobalDir;
PATH = ["$HOME/.npm-global/bin"]; PATH = ["${npmGlobalDir}/bin"];
NPM_CONFIG_USERCONFIG = "${npmConf}"; NPM_CONFIG_USERCONFIG = "${npmConf}";
}; };
system.userActivationScripts.setupNpm = '' system.userActivationScripts.setupNpm = ''
mkdir -p $HOME/.npm-global/bin mkdir -p ${npmGlobalDir}/bin
mkdir -p $HOME/.npm mkdir -p $HOME/.npm
if [ ! -f "$HOME/.npmrc" ]; then if [ ! -f "$HOME/.npmrc" ]; then
cp ${npmConf} $HOME/.npmrc cp ${npmConf} $HOME/.npmrc
fi fi
if [ -d "$HOME/.npm-global" ]; then if [ -d "${npmGlobalDir}" ]; then
chmod -R +rw $HOME/.npm-global chmod -R +rw ${npmGlobalDir}
fi fi
''; '';
}; };