uni-app 在 windows service 2022 上使用jenkins 执行 HbuliderX cli 无响应

发布于 1周前 作者 yuanlaile 来自 Uni-App

uni-app 在 windows service 2022 上使用jenkins 执行 HbuliderX cli 无响应

windows 节点的jenkins 执行 hbuliderx cli 构建 微信小程序服务,出现异常

同样的任务某一次就能过去,基本上是间隔一次就能过去
过不去的任务,查看 hbuliderx cli log 文件,文件内容有如下报错

2024-08-30 16:52:18.053 [WARNING:] QObject::connect: Cannot queue arguments of type 'SCNotification'  
(Make sure 'SCNotification' is registered using qRegisterMetaType().)  
2024-08-30 16:52:33.339 [WARNING:] [PluginHost] TypeScriptServerError: <semantic> TypeScript Server Error (5.2.2)  
undefined  
undefined  
    at TypeScriptServerError.create (C:\MustBeSoft\HBuilderX\plugins\hbuilderx-language-services\jsservice\out\tsServer\serverError.js:1:224)  
    at ProcessBasedTsServer.dispatchResponse (C:\MustBeSoft\HBuilderX\plugins\hbuilderx-language-services\jsservice\out\tsServer\server.js:1:3097)  
    at ProcessBasedTsServer.dispatchMessage (C:\MustBeSoft\HBuilderX\plugins\hbuilderx-language-services\jsservice\out\tsServer\server.js:1:1906)  
    at C:\MustBeSoft\HBuilderX\plugins\hbuilderx-language-services\jsservice\out\tsServer\server.js:1:1335  
    at e.fire (C:\MustBeSoft\HBuilderX\plugins\plugin-manager\out.js:1:29989)  
    at Reader.onLengthData (C:\MustBeSoft\HBuilderX\plugins\hbuilderx-language-services\jsservice\out\tsServer\serverProcess.electron.js:1:2411)  
    at Socket.<anonymous> (C:\MustBeSoft\HBuilderX\plugins\hbuilderx-language-services\jsservice\out\tsServer\serverProcess.electron.js:1:2058)  
    at Socket.emit (node:events:517:28)  
    at addChunk (node:internal/streams/readable:368:12)  
    at readableAddChunk (node:internal/streams/readable:341:9) {  
  serverId: 'semantic',  
  version: TypeScriptVersion {  
    source: 'ts-nightly-extension',  
    path: 'C:\\MustBeSoft\\HBuilderX\\plugins\\hbuilderx-language-services\\node_modules\\typescript\\lib\\tsserver.js',  
    apiVersion: API {  
      displayName: '5.2.2',  
      version: '5.2.2',  
      fullVersionString: '5.2.2'  
    },  
    _pathLabel: ''  
  },  
  response: {  
    seq: 0,  
    type: 'response',  
    command: 'unknown',  
    request_seq: 5,  
    success: false,  
    message: 'Unrecognized JSON command: onReportMessage',  
    _serverType: 'semantic'  
  },  
  serverMessage: undefined,  
  serverStack: undefined,  
  sanitizedStack: undefined  
}
开发环境 版本号 项目创建方式
Windows 5.2.2 HBuilderX

1 回复

在处理uni-app在Windows Server 2022上使用Jenkins执行HBuilderX CLI无响应的问题时,我们可以从多个角度进行排查和解决。以下是一些可能的代码案例和配置方法,帮助你定位问题所在。

1. Jenkins配置脚本

首先,确保Jenkins上的构建脚本正确配置了HBuilderX CLI的路径和命令。例如,可以在Jenkins的“构建”步骤中添加一个“Execute Windows batch command”或“Execute shell”(如果安装了相应的插件)来运行HBuilderX CLI。

@echo off
set HBUILDERX_PATH=C:\path\to\HBuilderX\cli
cd %HBUILDERX_PATH%
hbuilderx.exe build --platform=app-plus --project=C:\path\to\your\uni-app\project

2. 检查环境变量

确保Jenkins服务运行的用户账户具有正确的环境变量设置,特别是与Node.js和HBuilderX相关的环境变量。你可以在Jenkins的系统配置中设置这些环境变量,或者在构建脚本中显式设置。

set NODE_PATH=C:\path\to\nodejs
set PATH=%NODE_PATH%;%PATH%

3. 日志输出

增加日志输出可以帮助你更好地理解HBuilderX CLI在执行过程中发生了什么。可以通过重定向输出到文件来实现。

hbuilderx.exe build --platform=app-plus --project=C:\path\to\your\uni-app\project > build.log 2>&1

4. 权限问题

Windows Server 2022上的权限设置可能阻止Jenkins服务账户访问某些文件或目录。确保Jenkins服务运行的用户具有对uni-app项目目录和HBuilderX安装目录的读写权限。

5. 服务交互性

Jenkins服务默认是以非交互模式运行的,这可能导致某些GUI应用程序(如HBuilderX CLI在某些情况下)无法正确执行。尽管HBuilderX CLI主要是命令行工具,但某些后台服务或UI交互可能仍受影响。可以尝试将Jenkins配置为以交互模式运行(不推荐用于生产环境),或者确保所有操作都不依赖UI交互。

6. 依赖检查

确保所有必要的依赖项都已正确安装,包括Node.js、npm以及HBuilderX CLI本身。可以在构建脚本中添加检查这些依赖项是否存在的逻辑。

node -v
npm -v
%HBUILDERX_PATH%\hbuilderx.exe --version

通过上述步骤和代码案例,你应该能够更清晰地定位问题所在,并采取适当的措施解决Jenkins在Windows Server 2022上执行HBuilderX CLI无响应的问题。如果问题仍然存在,可能需要更深入地检查HBuilderX CLI的日志输出或联系HBuilderX的支持团队获取帮助。

回到顶部