Tauri 打包时遇到 "timeout: global" 错误的解决方案

17 阅读1分钟

问题描述

在使用 Tauri 2.x 开发 Windows 桌面应用时,执行 npm run tauri build 打包命令,遇到以下错误:

failed to bundle project `timeout: global`
Error failed to bundle project `timeout: global`

尝试设置 Cargo 超时时间也无效:

$env:CARGO_HTTP_TIMEOUT = 600
npm run tauri build

依然报同样的错误。

问题原因

Tauri 在打包 Windows 应用时,需要下载 NSIS(Nullsoft Scriptable Install System)来生成安装程序。由于网络原因(国内访问 GitHub 较慢),下载 NSIS 时超时导致打包失败。

从错误日志中可以看到,Tauri 尝试下载的是:

https://github.com/tauri-apps/binary-releases/releases/download/nsis-3.11/nsis-3.11.zip

解决方案

手动下载 NSIS 并放到 Tauri 的缓存目录中,绕过自动下载。

步骤一:创建目录

打开 PowerShell,执行:

New-Item -ItemType Directory -Path "$env:LOCALAPPDATA\tauri\NSIS" -Force

这会在 C:\Users\你的用户名\AppData\Local\tauri\ 下创建 NSIS 文件夹。

步骤二:下载 NSIS

使用浏览器或下载工具,下载以下文件:

https://github.com/tauri-apps/binary-releases/releases/download/nsis-3/nsis-3.zip

如果上面的链接下载慢,可以尝试使用代理或镜像站。

步骤三:解压文件

将下载的 nsis-3.zip 解压到刚才创建的目录:

C:\Users\你的用户名\AppData\Local\tauri\NSIS\

解压后的目录结构应该是:

C:\Users\你的用户名\AppData\Local\tauri\NSIS\
├── nsis-3.08\
│   ├── makensis.exe
│   ├── Bin\
│   ├── Contrib\
│   ├── Docs\
│   ├── Include\
│   ├── Plugins\
│   ├── Stubs\
│   └── ...

确保 makensis.exe 在正确的位置。

步骤四:重新打包

回到项目目录,重新执行打包命令:

npm run tauri build

这次应该能顺利完成打包,生成的安装包位于:

src-tauri\target\release\bundle\msi\你的应用名_版本_x64_en-US.msi
src-tauri\target\release\bundle\nsis\你的应用名_版本_x64-setup.exe

补充说明

如果你有代理,也可以通过设置环境变量来解决:

$env:HTTP_PROXY = "http://127.0.0.1:7890"
$env:HTTPS_PROXY = "http://127.0.0.1:7890"
npm run tauri build

7890 替换为你的代理端口。

总结

Tauri 打包时的 timeout: global 错误,本质上是网络问题导致无法下载 NSIS 工具。通过手动下载并放置到正确的缓存目录,可以完美解决这个问题。

希望这篇文章能帮到遇到同样问题的你!