{ config, pkgs, ... }: let node = pkgs.nodejs-12_x; node10Packages = pkgs.nodePackages_10_x; node2nixPackages = import ../packages/node2nix/default.nix { inherit pkgs; nodejs = node; }; 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; [ bunyan "netlify-cli" pino-pretty "pnpm-4.1.7" 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/ ''; }