grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / programs / npm.nix
blob470188b879b6ace3599128af10ebbafb51cf5917
1 { config, lib, pkgs, ... }:
3 let
4   cfg = config.programs.npm;
5 in
8   ###### interface
10   options = {
11     programs.npm = {
12       enable = lib.mkEnableOption "{command}`npm` global config";
14       package = lib.mkPackageOption pkgs [ "nodePackages" "npm" ] {
15         example = "nodePackages_13_x.npm";
16       };
18       npmrc = lib.mkOption {
19         type = lib.types.lines;
20         description = ''
21           The system-wide npm configuration.
22           See <https://docs.npmjs.com/misc/config>.
23         '';
24         default = ''
25           prefix = ''${HOME}/.npm
26         '';
27         example = ''
28           prefix = ''${HOME}/.npm
29           https-proxy=proxy.example.com
30           init-license=MIT
31           init-author-url=https://www.npmjs.com/
32           color=true
33         '';
34       };
35     };
36   };
38   ###### implementation
40   config = lib.mkIf cfg.enable {
41     environment.etc.npmrc.text = cfg.npmrc;
43     environment.variables.NPM_CONFIG_GLOBALCONFIG = "/etc/npmrc";
45     environment.systemPackages = [ cfg.package ];
46   };