# ── nvm (added in v2.0) ─────────────────────────────────────────────────────── # Lazy-load nvm to keep shell startup fast export NVM_DIR="$HOME/.nvm" if [[ -s "$NVM_DIR/nvm.sh" ]]; then # Stub functions that load nvm on first use nvm() { unset -f nvm node npm npx [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" nvm "$@" } node() { unset -f nvm node npm npx [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" node "$@" } npm() { unset -f nvm node npm npx [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" npm "$@" } npx() { unset -f nvm node npm npx [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" npx "$@" } # Add default node bin to PATH so node-installed CLIs work without lazy trigger if [[ -d "$NVM_DIR/alias" ]] && [[ -f "$NVM_DIR/alias/default" ]]; then DEFAULT_NODE="$(cat "$NVM_DIR/alias/default" 2>/dev/null)" [[ -d "$NVM_DIR/versions/node/v$DEFAULT_NODE/bin" ]] && \ PATH="$NVM_DIR/versions/node/v$DEFAULT_NODE/bin:$PATH" fi fi