Skip to content

Instantly share code, notes, and snippets.

@brainrake
Created November 9, 2017 13:31
Show Gist options
  • Save brainrake/c34ae6e8c55581aa844041ce02e5e8dc to your computer and use it in GitHub Desktop.
Save brainrake/c34ae6e8c55581aa844041ce02e5e8dc to your computer and use it in GitHub Desktop.
updateNpmDeps = pkgs.writeScriptBin "update-frontend-deps" ''
#!${pkgs.stdenv.shell}
set -e
echo; echo "Pinning node dependencies from ./package.json ..."; echo
${pkgs.nix}/bin/nix-instantiate --strict --json --eval --expr '
(import <nixpkgs> {}).lib.mapAttrsToList
(name : value : { "${"\${name}"}" = value; })
(builtins.fromJSON (builtins.readFile ./package.json)).dependencies
' > node-modules.json
${pkgs.nodePackages.node2nix}/bin/node2nix \
--composition node-modules.nix \
--input node-modules.json \
--output node-modules-generated.nix \
--node-env node-env.nix \
--flatten \
--pkg-name nodejs-6_x
${pkgs.gnused}/bin/sed -i -e "s| sources.\"elm-0.18| #sources.\"elm-0.18|" node-modules-generated.nix
${pkgs.gnused}/bin/sed -i -e "s| name = \"elm-webpack-loader\";| dontNpmInstall = true; name = \"elm-webpack-loader\";|" node-modules-generated.nix
${pkgs.gnused}/bin/sed -i -e "s| name = \"elm-test\";| dontNpmInstall = true; name = \"elm-test\";|" node-modules-generated.nix
''
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment