Skip to content

Commit

Permalink
perf: 优化CI脚本,基于corepack锁定pnpm版本
Browse files Browse the repository at this point in the history
  • Loading branch information
142vip.cn committed Sep 24, 2024
1 parent 9cf4157 commit 62e18ab
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 42 deletions.
14 changes: 3 additions & 11 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
"url": "https://github.com/142vip",
"homePage": "https://408.142vip.cn"
},
"packageManager": "pnpm@8.9.2",
"packageManager": "pnpm@9.6.0",
"engines": {
"node": "^18.x",
"pnpm": "8"
"node": ">=18.x",
"pnpm": "9.6.0"
},
"scripts": {
"preinstall": "chmod +x ./scripts/*",
Expand All @@ -24,14 +24,6 @@
"deploy:vercel": "vercel --prod",
"clean": "find . -name \"node_modules\" -type d -exec rm -rf '{}' + "
},
"scripts-info": {
"preinstall": "在安装依赖前分配脚本权限",
"postinstall": "在安装依赖后编译markdown文档转化为思维导图",
"prepare": "安装依赖预执行脚本",
"build:mark-map": "./scripts/mark-map",
"dev": "本地启动项目",
"clean": "快速删除本地依赖"
},
"devDependencies": {
"@commitlint/cli": "^18.6.1",
"@commitlint/config-conventional": "^18.6.3",
Expand Down
38 changes: 7 additions & 31 deletions scripts/ci
Original file line number Diff line number Diff line change
Expand Up @@ -5,37 +5,13 @@
## ./scripts/ci
##

# 期望的 pnpm 大版本号
majorVersionRequired=$(grep -o '"pnpm": *"[^"]*"' package.json | awk -F'"' '{print $4}')
echo "期望的 pnpm 大版本号:$majorVersionRequired"
NPM_REGISTRY="https://mirrors.tencent.com/npm/"

# 检测 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
}
## 获取所有参数
echo "运行命令: export COREPACK_NPM_REGISTRY=$NPM_REGISTRY && corepack enable pnpm && pnpm i --registry $NPM_REGISTRY --frozen-lockfile $*"

# 安装pnpm
installRequiredPNPM(){
npm i pnpm@$majorVersionRequired -g
}
# 导出corepack环境变量,安装pnpm版本
export COREPACK_NPM_REGISTRY=$NPM_REGISTRY && corepack enable pnpm


## 判断是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
# 安装项目依赖 -w -F @142vip/fairy-cli
pnpm i --registry $NPM_REGISTRY --frozen-lockfile "$@"

0 comments on commit 62e18ab

Please sign in to comment.