feat(): 更新依赖
This commit is contained in:
+101
-11
@@ -1,11 +1,21 @@
|
||||
# 发布所有子包到私有 npm 仓库
|
||||
# 使用方法: powershell scripts/publish.ps1
|
||||
# 使用方法: powershell scripts/publish.ps1 [版本类型]
|
||||
# 版本类型: major | minor | patch (默认 patch)
|
||||
# 注意: 发布仓库地址使用各子包 package.json 中的 publishConfig.registry 配置
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
$REGISTRY = "http://192.168.2.127:4873"
|
||||
# 获取版本类型参数,默认为 patch
|
||||
$VERSION_TYPE = if ($args.Count -gt 0) { $args[0] } else { "patch" }
|
||||
|
||||
Write-Host "🚀 开始发布所有子包到 $REGISTRY" -ForegroundColor Green
|
||||
# 验证版本类型
|
||||
if ($VERSION_TYPE -notin @("major", "minor", "patch")) {
|
||||
Write-Host "❌ 无效的版本类型: $VERSION_TYPE" -ForegroundColor Red
|
||||
Write-Host "使用方法: powershell scripts/publish.ps1 [major|minor|patch]" -ForegroundColor Yellow
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host "🚀 开始发布流程 (版本类型: $VERSION_TYPE)" -ForegroundColor Green
|
||||
Write-Host ""
|
||||
|
||||
# 子包列表
|
||||
@@ -16,23 +26,103 @@ $PACKAGES = @(
|
||||
"packages/vue2"
|
||||
)
|
||||
|
||||
# 先构建所有包
|
||||
Write-Host "📦 构建所有包..." -ForegroundColor Cyan
|
||||
pnpm build
|
||||
# 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 ""
|
||||
|
||||
# 3. 更新版本号
|
||||
Write-Host "📝 更新版本号 ($VERSION_TYPE)..." -ForegroundColor Cyan
|
||||
foreach ($package in $PACKAGES) {
|
||||
if (Test-Path $package) {
|
||||
Write-Host "📤 发布 $package ..." -ForegroundColor Cyan
|
||||
Write-Host " 更新 $package 版本号..." -ForegroundColor Gray
|
||||
Push-Location $package
|
||||
pnpm publish --registry="$REGISTRY" --no-git-checks
|
||||
npm version $VERSION_TYPE --no-git-tag-version
|
||||
Pop-Location
|
||||
Write-Host "✅ $package 发布成功" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
Write-Host ""
|
||||
|
||||
# 4. 构建所有包
|
||||
Write-Host "📦 构建所有包..." -ForegroundColor Cyan
|
||||
pnpm build
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Host "❌ 构建失败,停止发布" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
Write-Host ""
|
||||
|
||||
# 5. 更新 README 中的版本信息
|
||||
Write-Host "📄 更新 README..." -ForegroundColor Cyan
|
||||
$COMMON_VERSION = node -p "require('./packages/common/package.json').version"
|
||||
Write-Host " 当前版本: $COMMON_VERSION" -ForegroundColor Gray
|
||||
Write-Host ""
|
||||
|
||||
# 6. 提交版本更新
|
||||
Write-Host "💾 提交版本更新..." -ForegroundColor Cyan
|
||||
git add packages/*/package.json
|
||||
git commit -m "chore(release): publish v$COMMON_VERSION"
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Host " 没有需要提交的更改" -ForegroundColor Gray
|
||||
}
|
||||
Write-Host ""
|
||||
|
||||
# 7. 发布每个包
|
||||
Write-Host "📤 开始发布包到 npm..." -ForegroundColor Cyan
|
||||
foreach ($package in $PACKAGES) {
|
||||
if (Test-Path $package) {
|
||||
Push-Location $package
|
||||
$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
|
||||
}
|
||||
Pop-Location
|
||||
Write-Host "✅ $PACKAGE_NAME@$PACKAGE_VERSION 发布成功" -ForegroundColor Green
|
||||
Write-Host ""
|
||||
} else {
|
||||
Write-Host "⚠️ 跳过不存在的包: $package" -ForegroundColor Yellow
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "🎉 所有包发布完成!" -ForegroundColor Green
|
||||
# 8. 创建 Git 标签
|
||||
Write-Host "🏷️ 创建 Git 标签..." -ForegroundColor Cyan
|
||||
git tag "v$COMMON_VERSION"
|
||||
Write-Host ""
|
||||
|
||||
# 9. 推送到远程仓库
|
||||
Write-Host "🔼 推送到远程仓库..." -ForegroundColor Cyan
|
||||
$push = Read-Host "是否推送到远程仓库? (y/N)"
|
||||
if ($push -eq "y" -or $push -eq "Y") {
|
||||
git push origin master
|
||||
git push origin "v$COMMON_VERSION"
|
||||
Write-Host "✅ 已推送到远程仓库" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "⚠️ 跳过推送,请手动执行:" -ForegroundColor Yellow
|
||||
Write-Host " git push origin master" -ForegroundColor Gray
|
||||
Write-Host " git push origin v$COMMON_VERSION" -ForegroundColor Gray
|
||||
}
|
||||
Write-Host ""
|
||||
|
||||
Write-Host "🎉 所有包发布完成!版本: v$COMMON_VERSION" -ForegroundColor Green
|
||||
|
||||
+95
-11
@@ -1,13 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 发布所有子包到私有 npm 仓库
|
||||
# 使用方法: bash scripts/publish.sh
|
||||
# 使用方法: bash scripts/publish.sh [版本类型]
|
||||
# 版本类型: major | minor | patch (默认 patch)
|
||||
# 注意: 发布仓库地址使用各子包 package.json 中的 publishConfig.registry 配置
|
||||
|
||||
set -e
|
||||
|
||||
REGISTRY="http://192.168.2.127:4873"
|
||||
# 获取版本类型参数,默认为 patch
|
||||
VERSION_TYPE=${1:-patch}
|
||||
|
||||
echo "🚀 开始发布所有子包到 $REGISTRY"
|
||||
# 验证版本类型
|
||||
if [[ ! "$VERSION_TYPE" =~ ^(major|minor|patch)$ ]]; then
|
||||
echo "❌ 无效的版本类型: $VERSION_TYPE"
|
||||
echo "使用方法: bash scripts/publish.sh [major|minor|patch]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "🚀 开始发布流程 (版本类型: $VERSION_TYPE)"
|
||||
echo ""
|
||||
|
||||
# 子包列表
|
||||
@@ -18,23 +28,97 @@ PACKAGES=(
|
||||
"packages/vue2"
|
||||
)
|
||||
|
||||
# 先构建所有包
|
||||
echo "📦 构建所有包..."
|
||||
pnpm build
|
||||
# 1. 检查工作区是否干净
|
||||
echo "🔍 检查 Git 工作区状态..."
|
||||
if [[ -n $(git status -s) ]]; then
|
||||
echo "⚠️ 工作区有未提交的更改,请先提交或暂存"
|
||||
git status -s
|
||||
read -p "是否继续? (y/N) " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 发布每个包
|
||||
# 2. 运行测试
|
||||
echo "🧪 运行测试..."
|
||||
if ! pnpm test; then
|
||||
echo "❌ 测试失败,停止发布"
|
||||
exit 1
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 3. 更新版本号
|
||||
echo "📝 更新版本号 ($VERSION_TYPE)..."
|
||||
for package in "${PACKAGES[@]}"; do
|
||||
if [ -d "$package" ]; then
|
||||
echo "📤 发布 $package ..."
|
||||
echo " 更新 $package 版本号..."
|
||||
cd "$package"
|
||||
pnpm publish --registry="$REGISTRY" --no-git-checks
|
||||
npm version $VERSION_TYPE --no-git-tag-version
|
||||
cd - > /dev/null
|
||||
echo "✅ $package 发布成功"
|
||||
fi
|
||||
done
|
||||
echo ""
|
||||
|
||||
# 4. 构建所有包
|
||||
echo "📦 构建所有包..."
|
||||
if ! pnpm build; then
|
||||
echo "❌构建失败,停止发布"
|
||||
exit 1
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 5. 更新 README 中的版本信息
|
||||
echo "📄 更新 README..."
|
||||
COMMON_VERSION=$(node -p "require('./packages/common/package.json').version")
|
||||
echo " 当前版本: $COMMON_VERSION"
|
||||
echo ""
|
||||
|
||||
# 6. 提交版本更新
|
||||
echo "💾 提交版本更新..."
|
||||
git add packages/*/package.json
|
||||
git commit -m "chore(release): publish v$COMMON_VERSION" || echo " 没有需要提交的更改"
|
||||
echo ""
|
||||
|
||||
# 7. 发布每个包
|
||||
echo "📤 开始发布包到 npm..."
|
||||
for package in "${PACKAGES[@]}"; do
|
||||
if [ -d "$package" ]; then
|
||||
PACKAGE_NAME=$(node -p "require('./$package/package.json').name")
|
||||
PACKAGE_VERSION=$(node -p "require('./$package/package.json').version")
|
||||
echo "📤 发布 $PACKAGE_NAME@$PACKAGE_VERSION ..."
|
||||
cd "$package"
|
||||
if ! pnpm publish --no-git-checks; then
|
||||
echo "❌ $package 发布失败,停止后续发布"
|
||||
exit 1
|
||||
fi
|
||||
cd - > /dev/null
|
||||
echo "✅ $PACKAGE_NAME@$PACKAGE_VERSION 发布成功"
|
||||
echo ""
|
||||
else
|
||||
echo "⚠️ 跳过不存在的包: $package"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "🎉 所有包发布完成!"
|
||||
# 8. 创建 Git 标签
|
||||
echo "🏷️ 创建 Git 标签..."
|
||||
git tag "v$COMMON_VERSION"
|
||||
echo ""
|
||||
|
||||
# 9. 推送到远程仓库
|
||||
echo "🔼 推送到远程仓库..."
|
||||
read -p "是否推送到远程仓库? (y/N) " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
git push origin master
|
||||
git push origin "v$COMMON_VERSION"
|
||||
echo "✅ 已推送到远程仓库"
|
||||
else
|
||||
echo "⚠️ 跳过推送,请手动执行:"
|
||||
echo " git push origin master"
|
||||
echo " git push origin v$COMMON_VERSION"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
echo "🎉 所有包发布完成!版本: v$COMMON_VERSION"
|
||||
|
||||
Reference in New Issue
Block a user