summary refs log tree commit diff stats
path: root/user/settings/javascript.nix
blob: c42f17eb12d8dd0a4d9b26117fb9bafbccf7032f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
{ config, pkgs, ... }:

let
  node = pkgs.nodejs-12_x;
  node10Packages = pkgs.nodePackages_10_x;
  node2nixPackages = import ../packages/node2nix/default.nix {
    inherit pkgs;
  };
in
{ home.packages = (with pkgs; [
    node
  ] ++ (
    if stdenv.isDarwin
    then
    [
    ]
    else
    [
    # npm install may use any of these
    binutils
    gcc
    gnumake
    python2
    ]
  )) ++ (with node10Packages; [
    node-gyp
    node-gyp-build
    node-pre-gyp

    node2nix
    nodemon
    javascript-typescript-langserver
    typescript-language-server
    vscode-css-languageserver-bin
    vscode-html-languageserver-bin
    csslint
    eslint_d
    prettier
    typescript
  ]) ++ (with node2nixPackages; [
    node2nixPackages."pnpm-4.1.7"

    bunyan
    netlify-cli
    pino-pretty
    prettier_d
    dockerfile-language-server-nodejs
    yaml-language-server
  ]);

  home.sessionVariables = {
    NO_UPDATE_NOTIFIER = "1"; # stop npm update-notifier
  };

  programs.zsh.shellAliases = {
    ava = "pnpx ava";
    avt = "pnpx ava --tap";
    avat = "pnpx ava --tap";
    pino = "pino-pretty";
    mocha = "pnpx mocha";
    prettier = "pnpx prettier";
    standard = "pnpx standard";
    tsc = "pnpx tsc";
    tslint = "pnpx tslint";
    tsnode = "pnpx ts-node";

    p = "pnpm";
    pi = "pnpm install --filter=.";
    pl = "pnpm ls";
    pr = "pnpm run";
    prb = "pnpm run build";
    pmi = "pnpm multi install";
    pmx = "pnpm multi exec "; # expand command aliases
    pmr = "pnpm multi run";
    pa = "pnpm add";
    pad = "pnpm add --save-dev";
    pd = "pnpm uninstall";
    pou = "pnpm outdated";
    pt = "pnpm test";
    pmt = "pnpm multi test";
    pup = "pnpm update";
    ppr = "pnpm prune";
    pli = "pnpm link";
    pul = "pnpm unlink";

    np = "npm";
    npi = "npm install";
    npl = "npm ls";
    npr = "npm run";
    npb = "npm run build";
    nprb = "npm run build";
    npa = "npm install --save";
    npad = "npm install --save-dev";
    npd = "npm uninstall";
    npt = "npm test";
    npup = "npm update";
    nppr = "npm prune";
    npli = "npm link";
    npul = "npm unlink";
  };

  home.file.".npmrc".text = ''
    prefix=''${HOME}/.local
    //registry.npmjs.org/:_authToken=''${NPM_AUTH_TOKEN}
    always-auth=true
    sign-git-tag=true
    rebuild-bundle=false
    update-notifier=false
    registry=https://registry.npmjs.org/
  '';
}