2026-03-18 16:41:54 +08:00
|
|
|
|
# 发布所有子包到私有 npm 仓库
|
2026-03-18 16:32:27 +08:00
|
|
|
|
# 使用方法: powershell scripts/publish.ps1
|
2026-03-17 14:42:03 +08:00
|
|
|
|
# 注意: 发布仓库地址使用各子包 package.json 中的 publishConfig.registry 配置
|
2026-03-18 16:32:27 +08:00
|
|
|
|
# 版本管理请先通过 pnpm release (standard-version) 完成,本脚本仅负责构建和发布
|
2026-03-17 10:24:02 +08:00
|
|
|
|
|
|
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
|
|
|
2026-03-18 16:32:27 +08:00
|
|
|
|
Write-Host "🚀 开始发布流程" -ForegroundColor Green
|
2026-03-17 10:24:02 +08:00
|
|
|
|
Write-Host ""
|
|
|
|
|
|
|
|
|
|
|
|
# 子包列表
|
|
|
|
|
|
$PACKAGES = @(
|
|
|
|
|
|
"packages/common",
|
|
|
|
|
|
"packages/vue3",
|
|
|
|
|
|
"packages/uni-app",
|
2026-04-20 17:54:26 +08:00
|
|
|
|
"packages/uview-plus",
|
2026-03-17 10:24:02 +08:00
|
|
|
|
"packages/vue2"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2026-03-17 14:42:03 +08:00
|
|
|
|
# 1. 检查工作区是否干净
|
|
|
|
|
|
Write-Host "🔍 检查 Git 工作区状态..." -ForegroundColor Cyan
|
|
|
|
|
|
$gitStatus = git status -s
|
|
|
|
|
|
if ($gitStatus) {
|
|
|
|
|
|
Write-Host "⚠️ 工作区有未提交的更改,请先提交或暂存" -ForegroundColor Yellow
|
|
|
|
|
|
git status -s
|
|
|
|
|
|
$continue = Read-Host "是否继续? (y/N)"
|
|
|
|
|
|
if ($continue -ne "y" -and $continue -ne "Y") {
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Write-Host ""
|
|
|
|
|
|
|
|
|
|
|
|
# 2. 运行测试
|
|
|
|
|
|
Write-Host "🧪 运行测试..." -ForegroundColor Cyan
|
|
|
|
|
|
pnpm test
|
|
|
|
|
|
if ($LASTEXITCODE -ne 0) {
|
|
|
|
|
|
Write-Host "❌ 测试失败,停止发布" -ForegroundColor Red
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
}
|
|
|
|
|
|
Write-Host ""
|
|
|
|
|
|
|
2026-03-18 16:32:27 +08:00
|
|
|
|
# 3. 构建所有包
|
2026-03-17 10:24:02 +08:00
|
|
|
|
Write-Host "📦 构建所有包..." -ForegroundColor Cyan
|
|
|
|
|
|
pnpm build
|
2026-03-17 14:42:03 +08:00
|
|
|
|
if ($LASTEXITCODE -ne 0) {
|
|
|
|
|
|
Write-Host "❌ 构建失败,停止发布" -ForegroundColor Red
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
}
|
|
|
|
|
|
Write-Host ""
|
|
|
|
|
|
|
2026-03-18 16:32:27 +08:00
|
|
|
|
# 获取当前版本号
|
|
|
|
|
|
$CURRENT_VERSION = node -p "require('./package.json').version"
|
|
|
|
|
|
Write-Host " 当前版本: v$CURRENT_VERSION" -ForegroundColor Gray
|
2026-03-17 14:42:03 +08:00
|
|
|
|
Write-Host ""
|
|
|
|
|
|
|
2026-03-18 16:32:27 +08:00
|
|
|
|
# 4. 发布每个包
|
2026-03-17 14:42:03 +08:00
|
|
|
|
Write-Host "📤 开始发布包到 npm..." -ForegroundColor Cyan
|
2026-03-17 10:24:02 +08:00
|
|
|
|
foreach ($package in $PACKAGES) {
|
|
|
|
|
|
if (Test-Path $package) {
|
|
|
|
|
|
Push-Location $package
|
2026-03-17 14:42:03 +08:00
|
|
|
|
$PACKAGE_NAME = node -p "require('./package.json').name"
|
|
|
|
|
|
$PACKAGE_VERSION = node -p "require('./package.json').version"
|
|
|
|
|
|
Write-Host "📤 发布 $PACKAGE_NAME@$PACKAGE_VERSION ..." -ForegroundColor Cyan
|
|
|
|
|
|
pnpm publish --no-git-checks
|
|
|
|
|
|
if ($LASTEXITCODE -ne 0) {
|
|
|
|
|
|
Pop-Location
|
|
|
|
|
|
Write-Host "❌ $package 发布失败,停止后续发布" -ForegroundColor Red
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
}
|
2026-03-17 10:24:02 +08:00
|
|
|
|
Pop-Location
|
2026-03-17 14:42:03 +08:00
|
|
|
|
Write-Host "✅ $PACKAGE_NAME@$PACKAGE_VERSION 发布成功" -ForegroundColor Green
|
2026-03-17 10:24:02 +08:00
|
|
|
|
Write-Host ""
|
|
|
|
|
|
} else {
|
|
|
|
|
|
Write-Host "⚠️ 跳过不存在的包: $package" -ForegroundColor Yellow
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-04-20 17:54:26 +08:00
|
|
|
|
|
2026-03-17 14:42:03 +08:00
|
|
|
|
|
2026-03-18 16:41:54 +08:00
|
|
|
|
Write-Host "🎉 所有包发布完成!版本: v$CURRENT_VERSION" -ForegroundColor Green
|