From 298fcf8f32af859abd5328705e51a5d926346e80 Mon Sep 17 00:00:00 2001 From: alsaiduq-lab Date: Sat, 14 Jun 2025 12:10:10 -0600 Subject: [PATCH] fixes npm --- modules/env.nix | 12 ------------ modules/npm.nix | 50 +++++++++++++++++++------------------------------ 2 files changed, 19 insertions(+), 43 deletions(-) diff --git a/modules/env.nix b/modules/env.nix index 2919ff7..f23c4e5 100644 --- a/modules/env.nix +++ b/modules/env.nix @@ -3,15 +3,6 @@ lib, ... }: { - environment.shellInit = '' - if [ -d "$HOME/.cargo/bin" ]; then - export PATH="$PATH:$HOME/.cargo/bin" - fi - if [ -d "$HOME/.npm-global/bin" ]; then - export PATH="$PATH:$HOME/.npm-global/bin" - fi - ''; - environment.variables = { EDITOR = "nvim"; VISUAL = "nvim"; @@ -24,7 +15,6 @@ pkgs.openssl.dev pkgs.libxml2.dev pkgs.zlib.dev - pkgs.ffmpeg pkgs.portaudio pkgs.alsa-lib pkgs.stdenv.cc.cc @@ -41,14 +31,12 @@ pkgs.mangohud pkgs.portaudio pkgs.alsa-lib - pkgs.ffmpeg pkgs.stdenv.cc.cc.lib pkgs.xorg.libX11 pkgs.xorg.libXtst pkgs.xorg.libXi pkgs.glib ]; - NPM_CONFIG_PREFIX = "$HOME/.npm-global"; }; environment.pathsToLink = [ diff --git a/modules/npm.nix b/modules/npm.nix index 50e0a9b..4b3ea21 100644 --- a/modules/npm.nix +++ b/modules/npm.nix @@ -3,57 +3,45 @@ pkgs, lib, ... -}: -# TODO:bandaid fix for now -let - npmGlobalDir = "/home/cobray/.npm-global"; +}: let npmConf = pkgs.writeText "npmrc" '' - prefix=${npmGlobalDir} - cache=/home/cobray/.npm - init-module=/home/cobray/.npm-init.js + prefix=${"$"}{HOME}/.npm-global + cache=${"$"}{HOME}/.npm + init-module=${"$"}{HOME}/.npm-init.js ''; in { - options.npm = { - enable = lib.mkEnableOption "System NPM Environment"; - }; + options.npm.enable = lib.mkEnableOption "system-wide npm environment"; + config = lib.mkIf config.npm.enable { environment.systemPackages = with pkgs; [ nodejs_22 nodePackages.npm - electron yarn bun - deno - nodePackages.eslint + pnpm + electron + nodePackages.typescript nodePackages.prettier + nodePackages.eslint nodePackages.sql-formatter nodePackages.markdownlint-cli nodePackages.stylelint nodePackages.htmlhint nodePackages.jsonlint - nodePackages.pnpm - nodePackages.typescript ]; - environment.variables = { - PATH = [ - "${pkgs.nodejs_22}/bin" - "${npmGlobalDir}/bin" - ]; - }; + + environment.sessionVariables.PATH = + lib.mkAfter ":${"$"}{HOME}/.npm-global/bin"; + environment.etc."npmrc".source = npmConf; - systemd.user.services.npm-setup = { - description = "Set up NPM user configuration"; + + systemd.user.services."npm-setup" = { + description = "Install .npmrc"; wantedBy = ["default.target"]; script = '' - if [ ! -f ~/.npmrc ]; then - cp ${npmConf} ~/.npmrc - chmod u+rw ~/.npmrc - fi + install -m600 -D ${npmConf} "$HOME/.npmrc" ''; - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - }; + serviceConfig.Type = "oneshot"; }; }; }