Explorar o código

!1865 Windows 11 某此版本无法运行 build.bat ,新增powershell脚本 build.ps1 及 package.json 中相应的命令
Merge pull request !1865 from Zhou/apphost-buildapi-ps

zuohuaijun hai 8 meses
pai
achega
b237b90128
Modificáronse 3 ficheiros con 86 adicións e 1 borrados
  1. 79 0
      Web/api_build/build.ps1
  2. 1 0
      Web/api_build/readme.md
  3. 6 1
      Web/package.json

+ 79 - 0
Web/api_build/build.ps1

@@ -0,0 +1,79 @@
+# 启用UTF-8编码
+[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
+
+# 获取脚本所在目录
+$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
+
+# 设置默认参数
+$moduleName = "apiServices"
+$apiServicesPath = Join-Path (Join-Path $scriptDir "..") "src\api-services\"
+$apiUrl = "http://localhost:5005/swagger/Default/swagger.json"
+
+# 根据传入的参数修改配置
+if ($args[0] -eq "approvalFlow") {
+    $moduleName = "approvalFlow"
+    $apiServicesPath = Join-Path (Join-Path $scriptDir "..") "src\api-plugins\approvalFlow\"
+    $apiUrl = "http://localhost:5005/swagger/ApprovalFlow/swagger.json"
+} elseif ($args[0] -eq "dingTalk") {
+    $moduleName = "dingTalk"
+    $apiServicesPath = Join-Path (Join-Path $scriptDir "..") "src\api-plugins\dingTalk\"
+    $apiUrl = "http://localhost:5005/swagger/DingTalk/swagger.json"
+} elseif ($args[0] -eq "goView") {
+    $moduleName = "goView"
+    $apiServicesPath = Join-Path (Join-Path $scriptDir "..") "src\api-plugins\goView\"
+    # 注意:PowerShell会自动处理URL编码,所以不需要手动添加%20等
+    $apiUrl = "http://localhost:5005/swagger/GoView 大屏可视化/swagger.json"
+}
+
+# 输出信息和删除现有目录
+Write-Output "================================ 删除目录 $moduleName ================================"
+if (Test-Path $apiServicesPath) {
+    Remove-Item -Path $apiServicesPath -Recurse -Force
+}
+
+# 开始生成代码
+Write-Output "================================ 开始生成 $moduleName ================================"
+
+# 输出调试信息
+Write-Output "脚本目录: $scriptDir"
+Write-Output "模块名称: $moduleName"
+Write-Output "输出路径: $apiServicesPath"
+Write-Output "API URL: $apiUrl"
+
+# 执行代码生成命令
+try {
+    $codeGenJar = Join-Path $scriptDir "swagger-codegen-cli.jar"
+    java -jar $codeGenJar generate -i $apiUrl -l typescript-axios -o $apiServicesPath
+    if ($LASTEXITCODE -ne 0) {
+        throw "Java命令执行失败,退出代码: $LASTEXITCODE"
+    }
+} catch {
+    Write-Error "代码生成失败: $_"
+    exit 1
+}
+
+# 删除不必要的文件和文件夹
+Write-Output "================================ 删除不必要的文件和文件夹 ================================"
+
+$filesToDelete = @(
+    "$apiServicesPath\.swagger-codegen",
+    "$apiServicesPath\.gitignore",
+    "$apiServicesPath\.npmignore",
+    "$apiServicesPath\.swagger-codegen-ignore",
+    "$apiServicesPath\git_push.sh",
+    "$apiServicesPath\package.json",
+    "$apiServicesPath\README.md",
+    "$apiServicesPath\tsconfig.json"
+)
+
+foreach ($filePath in $filesToDelete) {
+    if (Test-Path $filePath) {
+        if ((Get-Item $filePath) -is [System.IO.DirectoryInfo]) {
+            Remove-Item -Path $filePath -Recurse -Force
+        } else {
+            Remove-Item -Path $filePath -Force
+        }
+    }
+}
+
+Write-Output "================================ 生成结束 ================================"

+ 1 - 0
Web/api_build/readme.md

@@ -35,6 +35,7 @@ Swagger Codegen 读取 swagger.json 生成 typescript-axios 客户端后,直
 
 - 启动 API 端服务,确保 http://localhost:5005/ 可以访问
 - Windows:运行 `build.bat`
+  - Windows 11 运行 `build.bat` 失败时,可改用 `.\build.ps1`
 - Linux / Mac:运行`./build.sh`
 
 > http://localhost:5005/ 为默认的 API 地址,如果要连接其他地址,请自行调整对应脚本

+ 6 - 1
Web/package.json

@@ -15,7 +15,12 @@
 		"build-approvalFlow-api": "cd api_build/ && build.bat approvalFlow",
 		"build-dingTalk-api": "cd api_build/ && build.bat dingTalk",
 		"build-goView-api": "cd api_build/ && build.bat goView",
-		"build-all-api": "npm run build-api && npm run build-approvalFlow-api &&  npm run build-dingTalk-api && npm run build-goView-api"
+		"build-all-api": "npm run build-api && npm run build-approvalFlow-api &&  npm run build-dingTalk-api && npm run build-goView-api",
+		"build-api-ps": "cd api_build/ && pwsh -ExecutionPolicy Bypass -File build.ps1",
+		"build-approvalFlow-api-ps": "cd api_build/ && pwsh -ExecutionPolicy Bypass -File build.ps1 approvalFlow",
+		"build-dingTalk-api-ps": "cd api_build/ && pwsh -ExecutionPolicy Bypass -File build.ps1 dingTalk",
+		"build-goView-api-ps": "cd api_build/ && pwsh -ExecutionPolicy Bypass -File build.ps1 goView",
+		"build-all-api-ps": "npm run build-api-ps && npm run build-approvalFlow-api-ps &&  npm run build-dingTalk-api-ps && npm run build-goView-api-ps"
 	},
 	"dependencies": {
 		"@element-plus/icons-vue": "^2.3.1",