nix_environments/node/shell.nix

38 lines
952 B
Nix

{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
buildInputs = with pkgs; [
nodejs
];
shellHook = ''
function log_header {
echo -ne "==> \e[32m\e[1m$1\e[0m\n"
}
function log_subheader {
echo -ne "--> \e[33m\e[1m$1\e[0m\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)"
'';
}