Add support for pnpm packages

Fixes #282
This commit is contained in:
mekb 2024-05-15 21:05:17 +10:00
parent 36cdc6da2a
commit 96ba35b0bf
No known key found for this signature in database
GPG key ID: 39F3751CDD35BB5F

View file

@ -2091,14 +2091,29 @@ get_packages() {
else else
# If neither exist, use npm root -g to get the global directory. # If neither exist, use npm root -g to get the global directory.
# (still ~10x faster than npm list) # (still ~10x faster than npm list)
npm_global=$(npm root -g) npm_global="$(npm root -g)"
[[ -d $npm_global ]] && dir "$npm_global"/*/ [[ -d "$npm_global" ]] && dir "$npm_global"/*/
# This may not work in WSL2 (if npm is installed on Windows, not WSL). # This may not work in WSL2 (if npm is installed on Windows, not WSL).
# However, if npm is not installed on this WSL subsystem, it doesn't really count # However, if npm is not installed on this WSL subsystem, it doesn't really count
# as a package manager for this subsystem, so let's ignore this case. # as a package manager for this subsystem, so let's ignore this case.
fi fi
fi fi
# Relatively the same for pnpm
if has pnpm; then
# Try to apply heuristics to find the global directory.
PNPM_P="local/share/pnpm/global/5/node_modules"
if [[ -d "$HOME/.$PNPM_P" ]]; then
dir "$HOME/.$PNPM_P"/*/
elif [[ -d "/usr/$PNPM_P" ]]; then
dir "/usr/$PNPM"/*/
else
# If neither exist, use pnpm root -g to get the global directory.
pnpm_global="$(pnpm root -g)"
[[ -d "$pnpm_global" ]] && dir "$pnpm_global"/*/
fi
fi
fi fi
if has pkgx && [[ -d "$HOME/.local/bin" ]]; then if has pkgx && [[ -d "$HOME/.local/bin" ]]; then