#!/bin/bash ## ## 依赖安装脚本 ## 使用: ## ./scripts/ci ## # 期望的 pnpm 大版本号 majorVersionRequired=$(grep -o '"pnpm": *"[^"]*"' package.json | awk -F'"' '{print $4}') echo "期望的 pnpm 大版本号:$majorVersionRequired" # 检测 pnpm 是否已安装并且大版本号符合要求 checkPNPMVersion() { # 获取已安装的 pnpm 版本 local pnpmVersionInstalled=$(pnpm --version 2>/dev/null) if [[ $pnpmVersionInstalled =~ ^$majorVersionRequired ]]; then echo "已安装的 pnpm 版本:$pnpmVersionInstalled" echo "已安装的 pnpm 大版本号符合要求." return 0 else echo "未安装 pnpm 或 pnpm 大版本号不符合要求." return 1 fi } # 安装pnpm installRequiredPNPM(){ npm i pnpm@$majorVersionRequired -g } ## 判断是PNPM安装且版本符合要求 if command -v pnpm &> /dev/null && checkPNPMVersion; then echo "无需安装 pnpm@@$majorVersionRequired" else echo "安装 pnpm@$majorVersionRequired..." installRequiredPNPM; fi # 安装项目依赖 pnpm i --frozen-lockfile --registry https://registry.npmmirror.com