user/settings/development/javascript.nix (view raw)
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 112 113 114 115 116 117 118 119 120 121 | { config, pkgs, ... }:
let
nodejs = pkgs.nodejs-14_x;
in
{
nixpkgs.overlays = [
(self: super: {
node2nixPackages = super.callPackage ../../packages/node2nix {
inherit nodejs;
};
})
];
home.packages = (with pkgs; [
nodejs
] ++ (
if stdenv.isDarwin
then
[
]
else
[
# npm install may use any of these
binutils
gnumake
gcc
python2
]
)) ++ (with pkgs.nodePackages; [
node2nix
nodemon
javascript-typescript-langserver
typescript-language-server
eslint_d
typescript
node-gyp
node-gyp-build
node-pre-gyp
]) ++ (with pkgs.node2nixPackages; [
pkgs.node2nixPackages."pnpm-5.18"
pino-pretty
]);
home.sessionVariables = {
NO_UPDATE_NOTIFIER = "1"; # stop npm update-notifier
};
programs.zsh.shellAliases = {
ava = "pnpx ava";
avt = "pnpx ava --tap";
avat = "pnpx ava --tap";
avaw = "pnpx ava --watch";
avaf = "pnpx ava --fail-fast";
avafw = "pnpx ava --fail-fast --watch";
avawf = "pnpx ava --fail-fast --watch";
pino = "pino-pretty";
mocha = "pnpx mocha";
standard = "pnpx standard";
tsc = "pnpx tsc";
tslint = "pnpx tslint";
tsnode = "pnpx ts-node";
p = "pnpm";
pi = "pnpm install --filter=.";
pit = "pnpm install-test --filter=.";
pl = "pnpm ls";
pr = "pnpm run";
pb = "pnpm run build";
prb = "pnpm run build";
pbd = "pnpm multi run build --filter={.}...";
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";
pmd = "pnpm multi uninstall";
pmit = "pnpm multi install-test";
pup = "pnpm update";
pupl = "pnpm update --latest";
ppr = "pnpm prune";
pprp = "pnpm prune --production";
pli = "pnpm link";
pdi = "pnpm dislink";
pul = "pnpm unlink";
px = "pnpx";
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";
npprp = "npm prune --production";
npli = "npm link";
npul = "npm unlink";
};
home.file.".npmrc".text = ''
prefix=''${HOME}/.local
cache=${config.xdg.cacheHome}/npm/
store-dir=${config.xdg.cacheHome}/pnpm/
script-shell=${pkgs.zsh}/bin/zsh
always-auth=true
sign-git-tag=true
rebuild-bundle=false
update-notifier=false
registry=https://registry.npmjs.org/
'';
}
|