Skip to content

Commit d0265e8

Browse files
authored
Merge branch 'tauri-apps:v2' into zh-cn
2 parents 8c926f6 + 626ef59 commit d0265e8

File tree

3 files changed

+245
-2
lines changed

3 files changed

+245
-2
lines changed

src/content/docs/es/plugin/localhost.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Expone los recursos de tu aplicación a través de un servidor localhost en luga
1919
Este plugin conlleva riesgos de seguridad considerables y solo debes usarlo si sabes lo que estás haciendo. Si tienes dudas, utiliza la implementación del protocolo personalizado por defecto.
2020
:::
2121

22-
## Plataformas soportadas
22+
## Plataformas compatibles
2323

2424
<Compatibility plugin={frontmatter.plugin} />
2525

Lines changed: 243 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,243 @@
1+
---
2+
title: 开发
3+
description: Tauri开发的核心概念
4+
sidebar:
5+
label: 概述
6+
i18nReady: true
7+
---
8+
9+
import CommandTabs from '@components/CommandTabs.astro';
10+
11+
现在 [万事俱备](/start/),你已经可以使用 Tauri 运行应用。
12+
13+
如果你正在使用一个 UI 框架或 JavaScript 打包工具,你可能有权访问开发服务器,
14+
这会加速你的开发,所以如果你还没有配置应用的开发URL和启动脚本,你可以对 [devUrl](/reference/config/#devurl)
15+
[beforeDevCommand](/reference/config/#beforedevcommand) 进行设置:
16+
17+
```json title=tauri.conf.json
18+
{
19+
"build": {
20+
"devUrl": "http://localhost:3000",
21+
"beforeDevCommand": "npm run dev"
22+
}
23+
}
24+
```
25+
26+
:::note
27+
28+
每一个框架都有专属的开发工具。本文档无法涵盖所有内容或保持最新状态。
29+
30+
若要了解更多并明确正确的配置项,请参考所选框架的文档。
31+
32+
:::
33+
34+
反之,如果没有使用框架和打包器,你可以将你的前端源码交给 Tauri,
35+
Tauri CLI 会帮你启动开发服务器:
36+
37+
```json title=tauri.conf.json
38+
{
39+
"build": {
40+
"frontendDist": "./src"
41+
}
42+
}
43+
```
44+
45+
注意在这个例子中,`src` 文件夹必须包含 `index.html` 文件和其他全部加载前端界面所需的资源。
46+
47+
:::caution[简单/原版开发服务器的安全问题]
48+
49+
内置的Tauri开发服务器不支持双向验证和加密。不要在不信任的网络环境中使用它来开发。
50+
查看 [开发服务器安全注意事项](/security/lifecycle/#development-server)
51+
来获取更加详细的解释。
52+
53+
:::
54+
55+
### 开发你的桌面应用
56+
57+
如果要为桌面环境开发应用,请执行 `tauri dev` 命令。
58+
59+
<CommandTabs
60+
npm="npm run tauri dev"
61+
yarn="yarn tauri dev"
62+
pnpm="pnpm tauri dev"
63+
deno="deno task tauri dev"
64+
bun="bun tauri dev"
65+
cargo="cargo tauri dev"
66+
/>
67+
68+
第一次执行这个命令时 Rust 包管理器可能会需要**一些时间**来下载并构建所有需要的包。
69+
他们会被缓存,以后的构建会快得多,因为只有你的代码需要重新构建。
70+
71+
Rust 构建完成后,webview 会打开,显示你的 web 应用。你可以对 web 应用进行更改,如果你的工具支持,webview 应该会自动更新,就像浏览器一样。
72+
73+
#### 打开 web 检查器
74+
75+
你可以打开 web 检查器来调试你的应用,打开的方法是在webview上右键并点击 "Inspect" 或使用快捷键 `Ctrl + Shift + I`(Windows,Linux),`Cmd + Option + I`(macOS)。
76+
77+
### 开发你的移动应用
78+
79+
移动应用开发和桌面端相差不大,不同是需要执行`tauri android dev``tauri ios dev` :
80+
81+
<CommandTabs
82+
npm="npm run tauri [android|ios] dev"
83+
yarn="yarn tauri [android|ios] dev"
84+
pnpm="pnpm tauri [android|ios] dev"
85+
deno="deno task tauri [android|ios] dev"
86+
bun="bun tauri [android|ios] dev"
87+
cargo="cargo tauri [android|ios] dev"
88+
/>
89+
90+
第一次执行这个命令时 Rust 包管理器可能会需要**一些时间**来下载并构建所有需要的包。
91+
他们会被缓存,以后的构建会快得多,因为只有你的代码需要重新构建。
92+
93+
#### 开发服务器
94+
95+
移动开发服务器运行与桌面端类似,但如果要在iOS物理机运行,
96+
则必须将其配置为监听 Tauri CLI 提供的特定地址,该地址在 `TAURI_DEV_HOST` 环境变量中定义。
97+
该地址可以是一个公网地址 (默认) 也可以是实际的 iOS 设备 TUN 地址——后者更安全,但目前需要 Xcode 连接到设备。
98+
99+
要使用 iOS 设备的地址,你必须在运行 dev 命令之前打开 Xcode,并确保你的设备已在“窗口 > 设备和模拟器”菜单中通过网络连接。
100+
然后,你必须运行 `tauri ios dev --force-ip-prompt` 来选择 iOS 设备地址(以 ::2 结尾的 IPv6 地址)。
101+
102+
为了使开发服务器监听正确的主机,以便 iOS 设备可以访问,你必须调整其配置,以使用 `TAURI_DEV_HOST` 值(如果已提供)。以下是 Vite 的示例配置:
103+
104+
```js
105+
import { defineConfig } from 'vite';
106+
107+
const host = process.env.TAURI_DEV_HOST;
108+
109+
// https://vitejs.dev/config/
110+
export default defineConfig({
111+
clearScreen: false,
112+
server: {
113+
host: host || false,
114+
port: 1420,
115+
strictPort: true,
116+
hmr: host
117+
? {
118+
protocol: 'ws',
119+
host,
120+
port: 1421,
121+
}
122+
: undefined,
123+
},
124+
});
125+
```
126+
127+
查看框架的设置指南以获取更多信息。
128+
129+
:::note
130+
使用 [create-tauri-app](https://github.com/tauri-apps/create-tauri-app) 创建的项目可为你的移动开发配置开箱即用的开发服务器。
131+
:::
132+
133+
#### 设备选择
134+
135+
默认情况下,mobile dev 命令会尝试在已连接的设备中运行你的应用,并回退到提示你选择要使用的模拟器。
136+
要预先定义运行目标,你可以提供设备或模拟器名称作为参数:
137+
138+
<CommandTabs
139+
npm="npm run tauri ios dev 'iPhone 15'"
140+
yarn="yarn tauri ios dev 'iPhone 15'"
141+
pnpm="pnpm tauri ios dev 'iPhone 15'"
142+
deno="deno task tauri ios dev 'iPhone 15'"
143+
bun="bun tauri ios dev 'iPhone 15'"
144+
cargo="cargo tauri ios dev 'iPhone 15'"
145+
/>
146+
147+
#### 使用 Xcode 或 Android Studio
148+
149+
或者,你可以选择使用 Xcode 或 Android Studio 来开发你的应用。这可以帮助你通过使用 IDE 而不是命令行工具来排查一些开发问题。
150+
要打开移动 IDE 而不是在连接的设备或模拟器上运行, 请使用 `--open` 标志:
151+
152+
<CommandTabs
153+
npm="npm run tauri [android|ios] dev --open"
154+
yarn="yarn tauri [android|ios] dev --open"
155+
pnpm="pnpm tauri [android|ios] dev --open"
156+
deno="deno task tauri [android|ios] dev --open"
157+
bun="bun tauri [android|ios] dev --open"
158+
cargo="cargo tauri [android|ios] dev --open"
159+
/>
160+
161+
:::note
162+
如果你打算在 iOS 物理设备上运行该应用,则还必须提供 `--host` 参数,并且你的开发服务器必须使用 `process.env.TAURI_DEV_HOST` 值作为主机。有关更多信息,请参阅你框架的设置指南。
163+
164+
<CommandTabs
165+
npm="npm run tauri [android|ios] dev --open --host"
166+
yarn="yarn tauri [android|ios] dev --open --host"
167+
pnpm="pnpm tauri [android|ios] dev --open --host"
168+
deno="deno task tauri [android|ios] dev --open --host"
169+
bun="bun tauri [android|ios] dev --open --host"
170+
cargo="cargo tauri [android|ios] dev --open --host"
171+
/>
172+
:::
173+
174+
:::caution
175+
要使用 Xcode 或 Android Studio,Tauri CLI 进程**必须**处于运行状态,且**无法**终止。
176+
建议使用 `tauri [android|ios] dev --open` 命令,并保持该进程处于活动状态,直到关闭 IDE。
177+
:::
178+
179+
#### 打开 web 检查器
180+
181+
- iOS
182+
183+
必须使用 Safari 来访问 iOS 应用程序的 Web Inspector。
184+
185+
在 Mac 机上打开 Safari,在菜单栏中选择 **Safari > 设置**,点击**高级**,然后选择**显示针对 Web 开发人员的功能**
186+
187+
如果你在物理设备上运行,则必须在**设置 > Safari > 高级**中启用 **Web Inspector**
188+
189+
完成所有步骤后,你应该会在 Safari 中看到 **Develop** 菜单,其中会找到要检查的已连接设备和应用程序。在你的设备或模拟器上选择 **localhost** ,然后点击即可打开 Safari 开发者工具窗口。
190+
191+
- Android
192+
193+
将你的 Android 设备连接到电脑,打开 Android 设备中的**设置**应用,选择**关于**,滚动到版本号,然后点击 7 次。
194+
这将为你的 Android 设备启用开发者模式和**开发者选项**设置。
195+
196+
要在你的设备上启用应用程序调试,你必须进入**开发者选项**设置,切换开发者选项开关并启用 **USB 调试**
197+
198+
:::note
199+
每个 Android 发行版都有自己的方式来启用开发者模式,请查看制造商的文档以获取更多信息。
200+
:::
201+
202+
Android 版 Web Inspector 由 Google Chrome 的 DevTools 提供支持,你可以通过在 Chrome 浏览器中访问 `chrome://inspect` 来访问。
203+
如果你的 Android 应用程序正在运行,你的设备或模拟器应该会出现在远程设备列表中,你可以通过点击设备上的**检查**来打开开发者工具。
204+
205+
#### 故障排除
206+
207+
1. 在 Xcode 上运行构建脚本时出错
208+
209+
Tauri 通过创建一个构建阶段来连接到 iOS Xcode 项目,该阶段会执行 Tauri CLI,将 Rust 源代码编译为运行时加载的库。
210+
构建阶段在 Xcode 进程上下文中执行,因此可能无法使用 Shell 修改(例如添加 PATH)。
211+
因此,在使用可能不兼容的工具(例如 Node.js 版本管理器)时请一定小心。
212+
213+
2. 在首次执行 iOS 应用时提示网络权限
214+
215+
首次执行 `tauri ios dev` 时,iOS 可能会提示你获取查找并连接本地网络中设备的权限。
216+
此权限是必需的,因为要从 iOS 设备访问你的开发服务器,我们必须将其暴露在本地网络中。
217+
要在你的设备中运行你的应用,你必须点击“允许”并重新启动你的应用。
218+
219+
### 响应源代码更改
220+
221+
与你的 webview 实时反映变化的方式类似,Tauri 会监视你的 Rust 文件的变化,
222+
因此当你修改其中任何一个文件时,你的应用程序就会自动重建并重新启动。
223+
224+
你可以使用 `tauri dev` 命令上的 `--no-watch` 标志来禁用此行为。
225+
226+
要限制需要监视更改的文件,可以在 src-tauri 文件夹中创建一个 `.taurignore` 文件。
227+
此文件的工作方式与常规 Git 忽略文件类似,因此你可以忽略任何文件夹或文件:
228+
229+
```filename=.taurignore
230+
build/
231+
src/generated/*.rs
232+
deny.toml
233+
```
234+
235+
### 使用浏览器 DevTools
236+
237+
Tauri 的 API 仅在你的应用程序窗口中有效,因此一旦你开始使用它们,你将无法再在系统浏览器中打开前端。
238+
239+
如果你更喜欢使用浏览器的开发人员工具,则需要配置 [tauri-invoke-http](https://github.com/tauri-apps/tauri-invoke-http) 通过 HTTP 服务器桥接 Tauri API 调用。
240+
241+
### 源代码控制
242+
243+
在你的项目仓库中,你**应该**`src-tauri/Cargo.lock``src-tauri/Cargo.toml` 一起提交到 git,因为 Cargo 使用 lockfile 来提供确定性构建。因此, 建议所有应用程序都写入其 `Cargo.lock` 文件。你**不应该**提交 `src-tauri/target` 文件夹或其中的任何内容。

0 commit comments

Comments
 (0)