uni-app 在 windows service 2022 上使用jenkins 执行 HbuliderX cli 无响应
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 |
在处理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的支持团队获取帮助。