subpackage-all-in-one.ps1 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. # uniapp小程序分包一键处理脚本
  2. # 此脚本将完成: 1.创建目录 2.移动文件 3.更新路径
  3. $projectRoot = "D:\zhongshuweilai\zswl.zip\zswl\code\charge_miniapp\charge_miniapp"
  4. Write-Host "=" * 60 -ForegroundColor Cyan
  5. Write-Host "uniapp小程序分包处理脚本" -ForegroundColor Cyan
  6. Write-Host "=" * 60 -ForegroundColor Cyan
  7. # ========== 第一步: 创建分包目录 ==========
  8. Write-Host "`n[1/3] 开始创建分包目录结构..." -ForegroundColor Green
  9. $subPackagesRoot = Join-Path $projectRoot "subPackages"
  10. if (!(Test-Path $subPackagesRoot)) {
  11. New-Item -ItemType Directory -Path $subPackagesRoot -Force | Out-Null
  12. Write-Host " ✓ 创建目录: subPackages" -ForegroundColor Yellow
  13. }
  14. $subpackages = @("charging", "order", "coupon", "other")
  15. foreach ($pkg in $subpackages) {
  16. $path = Join-Path $subPackagesRoot $pkg
  17. if (!(Test-Path $path)) {
  18. New-Item -ItemType Directory -Path $path -Force | Out-Null
  19. Write-Host " ✓ 创建目录: subPackages\$pkg" -ForegroundColor Yellow
  20. }
  21. }
  22. # ========== 第二步: 移动页面文件 ==========
  23. Write-Host "`n[2/3] 开始移动页面文件..." -ForegroundColor Green
  24. $moveMap = @{
  25. "charging" = @("site", "site-more", "charging", "terminal", "new-site")
  26. "order" = @("order", "order-detail")
  27. "coupon" = @("coupon-buy", "coupons", "recharge-log")
  28. "other" = @("feedback", "feedback-reply", "search", "web", "banner-page")
  29. }
  30. $movedCount = 0
  31. foreach ($package in $moveMap.Keys) {
  32. foreach ($pageName in $moveMap[$package]) {
  33. $sourcePath = Join-Path $projectRoot "pages\$pageName"
  34. $targetPath = Join-Path $subPackagesRoot "$package\$pageName"
  35. if (Test-Path $sourcePath) {
  36. Move-Item -Path $sourcePath -Destination $targetPath -Force
  37. Write-Host " ✓ 移动: $pageName -> subPackages\$package\$pageName" -ForegroundColor Cyan
  38. $movedCount++
  39. } else {
  40. Write-Host " ✗ 警告: 源目录不存在 pages\$pageName" -ForegroundColor Red
  41. }
  42. }
  43. }
  44. Write-Host " 完成移动 $movedCount 个页面目录" -ForegroundColor Green
  45. # ========== 第三步: 更新路径引用 ==========
  46. Write-Host "`n[3/3] 开始更新路径引用..." -ForegroundColor Green
  47. # 定义路径映射关系
  48. $pathMapping = @{
  49. "/pages/site/" = "/subPackages/charging/site/"
  50. "'/pages/site/" = "'/subPackages/charging/site/"
  51. "/pages/site-more/" = "/subPackages/charging/site-more/"
  52. "'/pages/site-more/" = "'/subPackages/charging/site-more/"
  53. "/pages/charging/" = "/subPackages/charging/charging/"
  54. "'/pages/charging/" = "'/subPackages/charging/charging/"
  55. "/pages/terminal/" = "/subPackages/charging/terminal/"
  56. "'/pages/terminal/" = "'/subPackages/charging/terminal/"
  57. "/pages/new-site/" = "/subPackages/charging/new-site/"
  58. "'/pages/new-site/" = "'/subPackages/charging/new-site/"
  59. "/pages/order/" = "/subPackages/order/order/"
  60. "'/pages/order/" = "'/subPackages/order/order/"
  61. "/pages/order-detail/" = "/subPackages/order/order-detail/"
  62. "'/pages/order-detail/" = "'/subPackages/order/order-detail/"
  63. "/pages/coupon-buy/" = "/subPackages/coupon/coupon-buy/"
  64. "'/pages/coupon-buy/" = "'/subPackages/coupon/coupon-buy/"
  65. "/pages/coupons/" = "/subPackages/coupon/coupons/"
  66. "'/pages/coupons/" = "'/subPackages/coupon/coupons/"
  67. "/pages/recharge-log/" = "/subPackages/coupon/recharge-log/"
  68. "'/pages/recharge-log/" = "'/subPackages/coupon/recharge-log/"
  69. "/pages/feedback/" = "/subPackages/other/feedback/"
  70. "'/pages/feedback/" = "'/subPackages/other/feedback/"
  71. "/pages/feedback-reply/" = "/subPackages/other/feedback-reply/"
  72. "'/pages/feedback-reply/" = "'/subPackages/other/feedback-reply/"
  73. "/pages/search/" = "/subPackages/other/search/"
  74. "'/pages/search/" = "'/subPackages/other/search/"
  75. "/pages/web/" = "/subPackages/other/web/"
  76. "'/pages/web/" = "'/subPackages/other/web/"
  77. "/pages/banner-page/" = "/subPackages/other/banner-page/"
  78. "'/pages/banner-page/" = "'/subPackages/other/banner-page/"
  79. }
  80. # 获取所有vue文件 (pages, subPackages, components目录)
  81. $searchPaths = @("pages", "subPackages", "components")
  82. $vueFiles = @()
  83. foreach ($searchPath in $searchPaths) {
  84. $fullPath = Join-Path $projectRoot $searchPath
  85. if (Test-Path $fullPath) {
  86. $vueFiles += Get-ChildItem -Path $fullPath -Filter "*.vue" -Recurse
  87. }
  88. }
  89. $totalFiles = $vueFiles.Count
  90. $modifiedFiles = 0
  91. foreach ($file in $vueFiles) {
  92. $content = Get-Content -Path $file.FullName -Raw -Encoding UTF8
  93. $originalContent = $content
  94. $fileModified = $false
  95. # 替换所有路径
  96. foreach ($oldPath in $pathMapping.Keys) {
  97. if ($content -like "*$oldPath*") {
  98. $content = $content -replace [regex]::Escape($oldPath), $pathMapping[$oldPath]
  99. $fileModified = $true
  100. }
  101. }
  102. # 如果内容有变化,写回文件
  103. if ($fileModified) {
  104. Set-Content -Path $file.FullName -Value $content -Encoding UTF8 -NoNewline
  105. $relativePath = $file.FullName.Replace($projectRoot, "").TrimStart("\")
  106. Write-Host " ✓ 已修改: $relativePath" -ForegroundColor Cyan
  107. $modifiedFiles++
  108. }
  109. }
  110. Write-Host " 共检查 $totalFiles 个文件,修改了 $modifiedFiles 个文件" -ForegroundColor Green
  111. # ========== 完成 ==========
  112. Write-Host "`n" + ("=" * 60) -ForegroundColor Cyan
  113. Write-Host "分包处理完成!" -ForegroundColor Green
  114. Write-Host ("=" * 60) -ForegroundColor Cyan
  115. Write-Host "`n处理总结:" -ForegroundColor Yellow
  116. Write-Host " ✓ 创建了 4 个分包目录" -ForegroundColor White
  117. Write-Host " ✓ 移动了 $movedCount 个页面" -ForegroundColor White
  118. Write-Host " ✓ 更新了 $modifiedFiles 个文件的路径引用" -ForegroundColor White
  119. Write-Host "`n下一步操作:" -ForegroundColor Yellow
  120. Write-Host " 1. 使用HBuilderX或微信开发者工具编译项目" -ForegroundColor White
  121. Write-Host " 2. 检查是否有编译错误" -ForegroundColor White
  122. Write-Host " 3. 测试各个页面跳转是否正常" -ForegroundColor White
  123. Write-Host " 4. 查看包体积是否满足微信小程序上传要求" -ForegroundColor White
  124. Write-Host "`n按任意键退出..." -ForegroundColor Gray
  125. $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")