{ pkgs ? import {} }: pkgs.mkShell { name = "node-environment"; buildInputs = with pkgs; [ nodejs ]; shellHook = '' function log_header { echo -ne "==> \e[32m\e[1m$1\e[0m\n\n" } function log_subheader { echo -ne "--> \e[33m\e[1m$1\e[0m\n\n" } function log { echo -ne " $1\n" } echo "" log_header "node_environment" mkdir -p .npm/bin export PATH=$PWD/.npm/bin:$PATH log_subheader "upgrading npm" npm install -g npm --prefix $PWD/.npm echo "" if [ -s global_packages.txt ]; then log_subheader "found global_packages.txt, installing packages" cat global_packages.txt | xargs npm install -g --prefix $PWD/.npm echo "" fi if [ -s package.json ]; then log_subheader "found package.json, running 'npm install'" npm install echo "" fi log_header "package versions" log "node $(node --version)" log "npm $(npm --version)" ''; }