<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>开发 on 编程那些事儿</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/</link><description>Recent content in 开发 on 编程那些事儿</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 26 Sep 2026 08:52:46 +0800</lastBuildDate><atom:link href="https://before80.github.io/prgms/Rust/tauriBasic/start/develop/index.xml" rel="self" type="application/rss+xml"/><item><title>1 开发概述</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/1-overview/</link><pubDate>Fri, 25 Sep 2026 21:31:08 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/1-overview/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://tauri.app/develop/"&gt;https://tauri.app/develop/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;现在你已&lt;a href="../../quickstart/"&gt;完成全部准备&lt;/a&gt;，可以运行你的 Tauri 应用了。&lt;/p&gt;
&lt;p&gt;如果你使用 UI 框架或 JavaScript 打包工具，通常会有一个开发服务器来加速开发流程。因此如果你还没配置应用的开发 URL 和启动脚本，可以通过 &lt;a href="https://tauri.app/reference/config/#devurl"&gt;devUrl&lt;/a&gt; 和 &lt;a href="https://tauri.app/reference/config/#beforedevcommand"&gt;beforeDevCommand&lt;/a&gt; 配置项来设置：&lt;/p&gt;</description></item><item><title>2 配置文件</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/2-configurationfiles/</link><pubDate>Fri, 25 Sep 2026 21:31:08 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/2-configurationfiles/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://tauri.app/develop/configuration-files/"&gt;https://tauri.app/develop/configuration-files/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;由于 Tauri 是构建应用的框架，配置项目设置时可能涉及许多文件。你可能会遇到的一些常见文件有 &lt;code&gt;tauri.conf.json&lt;/code&gt;、&lt;code&gt;package.json&lt;/code&gt; 和 &lt;code&gt;Cargo.toml&lt;/code&gt;。本页会简要说明每一个，帮助你在需要修改时找对文件。&lt;/p&gt;</description></item><item><title>3 从前端调用 Rust</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/3-callingrust/</link><pubDate>Fri, 25 Sep 2026 21:31:08 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/3-callingrust/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://tauri.app/develop/calling-rust/"&gt;https://tauri.app/develop/calling-rust/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;本文档介绍如何从应用前端与 Rust 代码通信。
如果想了解如何从 Rust 代码与前端通信，请参阅&lt;a href="../4-callingfrontend/"&gt;从 Rust 调用前端&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;Tauri 提供了带类型安全的、用于调用 Rust 函数的&lt;a href="#%E5%91%BD%E4%BB%A4"&gt;命令&lt;/a&gt;原语，以及更动态的&lt;a href="#%E4%BA%8B%E4%BB%B6%E7%B3%BB%E7%BB%9F"&gt;事件系统&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>4 从 Rust 调用前端</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/4-callingfrontend/</link><pubDate>Fri, 25 Sep 2026 21:31:08 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/4-callingfrontend/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://tauri.app/develop/calling-frontend/"&gt;https://tauri.app/develop/calling-frontend/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;本文档介绍如何从 Rust 代码与应用前端通信。
如果想了解如何从前端与 Rust 代码通信，请参阅&lt;a href="../3-callingrust/"&gt;从前端调用 Rust&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;Tauri 应用的 Rust 侧可以通过 Tauri 事件系统调用前端，也可以使用通道，或直接执行 JavaScript 代码。&lt;/p&gt;</description></item><item><title>5 状态管理</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/5-statemanagement/</link><pubDate>Fri, 25 Sep 2026 21:31:08 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/5-statemanagement/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://tauri.app/develop/state-management/"&gt;https://tauri.app/develop/state-management/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在 Tauri 应用中，你经常需要跟踪应用的当前状态，或者管理与应用相关联事物的生命周期。Tauri 通过 &lt;a href="https://docs.rs/tauri/latest/tauri/trait.Manager.html"&gt;&lt;code&gt;Manager&lt;/code&gt;&lt;/a&gt; API 提供了一种简单的方式来管理应用状态，并在命令被调用时读取它。&lt;/p&gt;</description></item><item><title>5 嵌入附加文件</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/6-resources/</link><pubDate>Fri, 25 Sep 2026 21:31:08 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/6-resources/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://tauri.app/develop/resources/"&gt;https://tauri.app/develop/resources/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;你可能需要在应用打包中加入一些不属于前端（即你的 &lt;code&gt;frontendDist&lt;/code&gt;）的文件，或者文件太大不适合内联进二进制文件。我们把这类文件称为 &lt;code&gt;resources&lt;/code&gt;（资源）。&lt;/p&gt;</description></item><item><title>7 嵌入外部二进制文件</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/7-sidecar/</link><pubDate>Fri, 25 Sep 2026 21:31:08 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/7-sidecar/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://tauri.app/develop/sidecar/"&gt;https://tauri.app/develop/sidecar/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;你可能需要嵌入外部二进制文件来为应用添加额外功能，或者避免用户去安装额外依赖（例如 Node.js 或 Python）。我们把这类的二进制文件称为 &lt;code&gt;sidecar&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>8 更新依赖</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/8-updatingdependencies/</link><pubDate>Fri, 25 Sep 2026 21:31:08 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/8-updatingdependencies/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://tauri.app/develop/updating-dependencies/"&gt;https://tauri.app/develop/updating-dependencies/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="更新-npm-包"&gt;更新 npm 包&lt;/h2&gt;
&lt;p&gt;如果你使用 &lt;code&gt;tauri&lt;/code&gt; 包：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;包管理器&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;






&lt;ul class="nav nav-tabs" id="tabs-0" role="tablist"&gt;
 &lt;li class="nav-item"&gt;
 &lt;button class="nav-link active"
 id="tabs-00-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-00" role="tab"
 aria-controls="tabs-00-00" aria-selected="true"&gt;
 npm
 &lt;/button&gt;
 &lt;/li&gt;&lt;li class="nav-item"&gt;
 &lt;button class="nav-link"
 id="tabs-00-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-01" role="tab"
 aria-controls="tabs-00-01" aria-selected="false"&gt;
 yarn
 &lt;/button&gt;
 &lt;/li&gt;&lt;li class="nav-item"&gt;
 &lt;button class="nav-link"
 id="tabs-00-02-tab" data-bs-toggle="tab" data-bs-target="#tabs-00-02" role="tab"
 aria-controls="tabs-00-02" aria-selected="false"&gt;
 pnpm
 &lt;/button&gt;
 &lt;/li&gt;
&lt;/ul&gt;

&lt;div class="tab-content" id="tabs-0-content"&gt;
 &lt;div class="tab-body tab-pane fade show active"
 id="tabs-00-00" role="tabpanel" aria-labelled-by="tabs-00-00-tab" tabindex="0"&gt;
 &lt;div class="highlight"&gt;&lt;div style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;npm install @tauri-apps/cli@latest @tauri-apps/api@latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="tab-body tab-pane fade"
 id="tabs-00-01" role="tabpanel" aria-labelled-by="tabs-00-01-tab" tabindex="0"&gt;
 &lt;div class="highlight"&gt;&lt;div style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;yarn up @tauri-apps/cli @tauri-apps/api
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="tab-body tab-pane fade"
 id="tabs-00-02" role="tabpanel" aria-labelled-by="tabs-00-02-tab" tabindex="0"&gt;
 &lt;div class="highlight"&gt;&lt;div style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pnpm update @tauri-apps/cli @tauri-apps/api --latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;/div&gt;
&lt;/div&gt;

你也可以在命令行中查看 Tauri 的最新版本：&lt;/p&gt;</description></item><item><title>9 应用图标</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/9-icons/</link><pubDate>Fri, 25 Sep 2026 21:31:08 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/9-icons/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://tauri.app/develop/icons/"&gt;https://tauri.app/develop/icons/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Tauri 自带一套基于其 logo 的默认图标集。发布应用时这并不是你想要的。为解决这个常见问题，Tauri 提供了 &lt;code&gt;icon&lt;/code&gt; 命令：它以某个输入文件（默认是 &lt;code&gt;&amp;quot;./app-icon.png&amp;quot;&lt;/code&gt;）为基础，生成各平台所需的所有图标。&lt;/p&gt;</description></item><item><title>1 调试概述</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/10-debug/</link><pubDate>Fri, 25 Sep 2026 21:31:08 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/10-debug/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://tauri.app/develop/debug/"&gt;https://tauri.app/develop/debug/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Tauri 涉及的环节很多，你可能会遇到需要调试的问题。有许多地方会打印错误细节，Tauri 也提供了一些工具来让调试过程更直接。&lt;/p&gt;
&lt;h2 id="仅在开发环境使用的代码"&gt;仅在开发环境使用的代码&lt;/h2&gt;
&lt;p&gt;调试工具箱中最有用的工具之一，是能在代码里添加调试语句。不过你通常不希望它们进入生产环境，这时判断自己是否运行在开发模式下就派上用场了。&lt;/p&gt;</description></item><item><title>2 CrabNebula DevTools</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/12-crabnebuladevtools/</link><pubDate>Fri, 25 Sep 2026 21:31:08 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/12-crabnebuladevtools/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://tauri.app/develop/debug/crabnebula-devtools/"&gt;https://tauri.app/develop/debug/crabnebula-devtools/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://crabnebula.dev/"&gt;CrabNebula&lt;/a&gt; 作为与 Tauri 项目合作的一部分，为 Tauri 提供了一个免费的 &lt;a href="https://crabnebula.dev/devtools/"&gt;DevTools&lt;/a&gt; 应用。该应用可以对你的 Tauri 应用进行插桩：捕获其内嵌资源、Tauri 配置文件、日志与 span，并提供一个 Web 前端来实时无缝地可视化这些数据。&lt;/p&gt;</description></item><item><title>3 Linux 图形问题</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/13-linuxgraphics/</link><pubDate>Fri, 25 Sep 2026 21:31:08 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/13-linuxgraphics/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://tauri.app/develop/debug/linux-graphics/"&gt;https://tauri.app/develop/debug/linux-graphics/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在 Linux 上，Tauri 通过 WebKitGTK 渲染。在某些环境下（最常见的是 NVIDIA GPU），WebKitGTK 与显卡驱动无法达成一致，你会遇到从空白窗口到细微渲染问题等各种现象。本页汇总了已知症状与变通办法。原始报告见 &lt;a href="https://github.com/tauri-apps/tauri/issues/9394"&gt;tauri-apps/tauri#9394&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>4 在 JetBrains IDE 中调试</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/14-rustrover/</link><pubDate>Fri, 25 Sep 2026 21:31:08 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/14-rustrover/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://tauri.app/develop/debug/rustrover/"&gt;https://tauri.app/develop/debug/rustrover/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在本指南中，我们将配置 JetBrains RustRover 来调试 &lt;a href="../../concept/3-processmodel/#%E6%A0%B8%E5%BF%83%E8%BF%9B%E7%A8%8B"&gt;Tauri 应用的核心进程&lt;/a&gt;。其中大部分内容也适用于 IntelliJ 和 CLion。&lt;/p&gt;
&lt;h2 id="设置-cargo-项目"&gt;设置 Cargo 项目&lt;/h2&gt;
&lt;p&gt;取决于项目使用的前端技术栈，项目目录可能是也可能不是 Cargo 项目。默认情况下，Tauri 把 Rust 项目放在名为 &lt;code&gt;src-tauri&lt;/code&gt; 的子目录中。只有当 Rust 也用于前端开发时，它才会在根目录创建 Cargo 项目。&lt;/p&gt;</description></item><item><title>5 在 VS Code 中调试</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/15-vscode/</link><pubDate>Fri, 25 Sep 2026 21:31:08 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/15-vscode/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://tauri.app/develop/debug/vscode/"&gt;https://tauri.app/develop/debug/vscode/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;本指南将带你配置 VS Code，用于调试 &lt;a href="../../concept/3-processmodel/#%E6%A0%B8%E5%BF%83%E8%BF%9B%E7%A8%8B"&gt;Tauri 应用的核心进程&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="使用-vscode-lldb-扩展的所有平台"&gt;使用 vscode-lldb 扩展的所有平台&lt;/h2&gt;
&lt;h3 id="前置条件"&gt;前置条件&lt;/h3&gt;
&lt;p&gt;安装 &lt;a href="https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb"&gt;&lt;code&gt;vscode-lldb&lt;/code&gt;&lt;/a&gt; 扩展。&lt;/p&gt;
&lt;h3 id="配置-launchjson"&gt;配置 launch.json&lt;/h3&gt;
&lt;p&gt;创建 &lt;code&gt;.vscode/launch.json&lt;/code&gt; 文件，并把下面的 JSON 内容粘贴进去：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt; 1
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt; 2
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt; 3
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt; 4
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt; 5
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt; 6
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt; 7
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt; 8
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt; 9
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;10
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;11
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;12
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;13
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;14
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;15
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;16
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;17
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;18
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;19
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;20
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;21
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;22
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;23
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;24
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;25
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;26
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;27
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;28
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;29
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;30
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;31
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#58626f"&gt;32
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="color:#b0c4de;background-color:#282c34;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#abb2bf"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8a93a5;font-style:italic"&gt;// 使用 IntelliSense 了解可能的属性。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8a93a5;font-style:italic"&gt;// 悬停可查看现有属性的说明。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8a93a5;font-style:italic"&gt;// 更多信息请访问：https://go.microsoft.com/fwlink/?linkid=830387
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#76a9f9"&gt;&amp;#34;version&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;:&lt;/span&gt; &lt;span style="color:#63c381"&gt;&amp;#34;0.2.0&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#76a9f9"&gt;&amp;#34;configurations&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;:&lt;/span&gt; &lt;span style="color:#abb2bf"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#abb2bf"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#76a9f9"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;:&lt;/span&gt; &lt;span style="color:#63c381"&gt;&amp;#34;lldb&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#76a9f9"&gt;&amp;#34;request&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;:&lt;/span&gt; &lt;span style="color:#63c381"&gt;&amp;#34;launch&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#76a9f9"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;:&lt;/span&gt; &lt;span style="color:#63c381"&gt;&amp;#34;Tauri Development Debug&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#76a9f9"&gt;&amp;#34;cargo&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;:&lt;/span&gt; &lt;span style="color:#abb2bf"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#76a9f9"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;:&lt;/span&gt; &lt;span style="color:#abb2bf"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#63c381"&gt;&amp;#34;build&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#63c381"&gt;&amp;#34;--manifest-path=./src-tauri/Cargo.toml&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#63c381"&gt;&amp;#34;--no-default-features&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#abb2bf"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#abb2bf"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8a93a5;font-style:italic"&gt;// 如果使用了 `beforeDevCommand`，其任务必须在 `.vscode/tasks.json` 中配置
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#76a9f9"&gt;&amp;#34;preLaunchTask&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;:&lt;/span&gt; &lt;span style="color:#63c381"&gt;&amp;#34;ui:dev&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#abb2bf"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#abb2bf"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#76a9f9"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;:&lt;/span&gt; &lt;span style="color:#63c381"&gt;&amp;#34;lldb&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#76a9f9"&gt;&amp;#34;request&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;:&lt;/span&gt; &lt;span style="color:#63c381"&gt;&amp;#34;launch&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#76a9f9"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;:&lt;/span&gt; &lt;span style="color:#63c381"&gt;&amp;#34;Tauri Production Debug&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#76a9f9"&gt;&amp;#34;cargo&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;:&lt;/span&gt; &lt;span style="color:#abb2bf"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#76a9f9"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;:&lt;/span&gt; &lt;span style="color:#abb2bf"&gt;[&lt;/span&gt;&lt;span style="color:#63c381"&gt;&amp;#34;build&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;,&lt;/span&gt; &lt;span style="color:#63c381"&gt;&amp;#34;--release&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;,&lt;/span&gt; &lt;span style="color:#63c381"&gt;&amp;#34;--manifest-path=./src-tauri/Cargo.toml&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#abb2bf"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#8a93a5;font-style:italic"&gt;// 如果使用了 `beforeBuildCommand`，其任务必须在 `.vscode/tasks.json` 中配置
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#76a9f9"&gt;&amp;#34;preLaunchTask&amp;#34;&lt;/span&gt;&lt;span style="color:#abb2bf"&gt;:&lt;/span&gt; &lt;span style="color:#63c381"&gt;&amp;#34;ui:build&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#abb2bf"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#abb2bf"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#abb2bf"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;它直接使用 &lt;code&gt;cargo&lt;/code&gt; 构建 Rust 应用，并在开发模式和生产模式下加载它。&lt;/p&gt;</description></item><item><title>6 在 Neovim 中调试</title><link>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/16-neovim/</link><pubDate>Fri, 25 Sep 2026 21:31:08 +0800</pubDate><guid>https://before80.github.io/prgms/Rust/tauriBasic/start/develop/16-neovim/</guid><description>&lt;blockquote&gt;
&lt;p&gt;原文链接: &lt;a href="https://tauri.app/develop/debug/neovim/"&gt;https://tauri.app/develop/debug/neovim/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在 Neovim 中调试 Rust 代码有很多不同的插件可用。本指南将展示如何配置 &lt;code&gt;nvim-dap&lt;/code&gt; 以及一些附加插件来调试 Tauri 应用。&lt;/p&gt;
&lt;h3 id="前置条件"&gt;前置条件&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;nvim-dap&lt;/code&gt; 扩展需要 &lt;code&gt;codelldb&lt;/code&gt; 二进制文件。请从 &lt;a href="https://github.com/vadimcn/codelldb/releases"&gt;https://github.com/vadimcn/codelldb/releases&lt;/a&gt; 下载适合你系统的版本并解压。稍后我们会在 &lt;code&gt;nvim-dap&lt;/code&gt; 配置中指向它。&lt;/p&gt;</description></item></channel></rss>