# shellcheck shell=bash pnpmConfigHook() { echo "Executing pnpmConfigHook" if [ -n "${pnpmRoot-}" ]; then pushd "$pnpmRoot" fi if [ -z "${pnpmDeps-}" ]; then echo "Error: 'pnpmDeps' must be set when using pnpmConfigHook." exit 1 fi echo "Configuring pnpm store" export HOME=$(mktemp -d) export STORE_PATH=$(mktemp -d) cp -Tr "$pnpmDeps" "$STORE_PATH" chmod -R +w "$STORE_PATH" pnpm config set store-dir "$STORE_PATH" if [[ -n "$pnpmWorkspace" ]]; then echo "'pnpmWorkspace' is deprecated, please migrate to 'pnpmWorkspaces'." exit 2 fi echo "Installing dependencies" if [[ -n "$pnpmWorkspaces" ]]; then local IFS=" " for ws in $pnpmWorkspaces; do pnpmInstallFlags+=("--filter=$ws") done fi runHook prePnpmInstall pnpm install \ --offline \ --ignore-scripts \ "${pnpmInstallFlags[@]}" \ --frozen-lockfile echo "Patching scripts" patchShebangs node_modules/{*,.*} if [ -n "${pnpmRoot-}" ]; then popd fi echo "Finished pnpmConfigHook" } postConfigureHooks+=(pnpmConfigHook)