4 min read

Tauri Windows打包报错:NSIS下载超时解决方案详解

问题背景

在使用 Tauri 进行 Windows 平台应用打包时,很多开发者都会遇到这样的报错信息:

Downloading https://github.com/tauri-apps/binary-releases/releases/download/nsis-3/nsis-3.zip
failed to bundle project `timeout: global`
        Error failed to bundle project `timeout: global` error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

这个错误信息看起来很复杂,但关键问题其实集中在第一行。让我们来深入分析一下这个问题的根源和解决方案。

问题根源分析

从错误信息中,我们可以看到问题的核心:

Downloading https://github.com/tauri-apps/binary-releases/releases/download/nsis-3/nsis-3.zip failed to bundle project `timeout: global`

这明确指出了问题所在:在打包的最后一步——下载 NSIS 工具时,网络请求超时了。

NSIS 是什么?

NSIS (Nullsoft Scriptable Install System) 是一个流行的 Windows 安装程序制作工具。Tauri 在 Windows 下默认使用 NSIS 来创建 .exe 格式的安装程序。

为什么会发生超时?

在打包过程中,Tauri 的构建脚本会自动从 GitHub 下载一个预编译好的 NSIS 版本(就是你看到的 nsis-3.zip)。如果你的网络环境无法稳定、快速地访问 GitHub,下载就会因为耗时过长而超时,最终导致打包失败。

这个在中国大陆地区的网络环境下是一个非常普遍的问题。

解决方案

这里提供几个解决方案,强烈推荐方案一,因为它最稳定可靠,能够一劳永逸地解决问题。

✅ 方案一:手动下载 NSIS(最推荐,一劳永逸)

这个方法的核心思想是:既然自动下载不行,那我们就手动下载好,放到 Tauri 期望找到它的位置,绕过自动下载的步骤。

步骤 1:手动下载 nsis-3.zip

  1. 打开浏览器,访问 Tauri 的二进制发布页面:
    https://github.com/tauri-apps/binary-releases/releases/tag/nsis-3
  2. 在页面中找到 nsis-3.zip 文件,点击下载。

步骤 2:找到 Tauri 的缓存目录

  1. Win + R 键,打开"运行"对话框。
  2. 输入 %LOCALAPPDATA% 然后回车。这会打开 C:\Users\你的用户名\AppData\Local 目录。
  3. 在这个目录里,检查是否有名为 Tauri 的文件夹。如果没有,就手动创建一个。
  4. 进入 Tauri 文件夹,在里面再检查是否有名为 NSIS 的文件夹。如果没有,同样手动创建一个。
  5. 最终,你需要得到这个路径:C:\Users\你的用户名\AppData\Local\Tauri\NSIS

步骤 3:解压文件到正确位置

  1. 将你刚刚下载的 nsis-3.zip 整个解压Tauri\NSIS 文件夹中。
  2. 解压后,目录结构应该看起来像这样:- Tauri
    - NSIS
    - nsis-3 <-- 这是解压出来的文件夹
    - makensis.exe
    - ... (其他 NSIS 文件)

步骤 4:重新运行打包命令

  1. 回到你的项目终端,再次运行 yarn tauri build
  2. 这次,Tauri 会检测到 NSIS 目录下已经有工具了,它会直接使用本地的 NSIS 进行打包,跳过下载步骤,问题解决。

✅ 方案二:改善网络环境后重试

如果你不想手动配置,可以尝试解决网络问题。

1. 使用代理/VPN

如果你有稳定可靠的代理工具或 VPN,请先开启它,确保你的浏览器可以流畅访问 GitHub,然后再运行打包命令。

2. 切换网络

尝试连接其他网络,比如手机热点,排除当前局域网(如公司、学校网络)的限制。

3. 清理缓存后重试

有时候,不完整的下载文件会残留在缓存中,导致后续尝试也失败。

  1. 打开 %LOCALAPPDATA%\Tauri 目录。
  2. 删除整个 Tauri 文件夹(或者只删除里面的 NSIS 文件夹)。
  3. 改善网络后,再运行 yarn tauri build,它会进行一次全新的下载。

总结与行动建议

方案 优点 缺点 推荐度
方案一:手动下载 最稳定,一劳永逸,不依赖网络 需要手动操作几个步骤 ⭐⭐⭐⭐⭐ (首选)
方案二:改善网络 操作简单,无需干预文件 依赖网络环境,问题可能复现 ⭐⭐⭐

最终建议

强烈建议直接使用【方案一】,虽然需要几分钟时间进行手动配置,但这是一劳永逸的解决方案,以后就不会再为这个问题烦恼了。

重要提醒: 如果手动下载并正确放置文件后,打包仍然报错(报其他信息),请运行 tauri info 命令,将完整输出贴出来,这样可以进一步分析其他可能的问题。


希望这篇文章能帮助你解决 Tauri Windows 打包中的 NSIS 下载超时问题!如果还有其他疑问,欢迎在评论区留言讨论。