|
1 | 1 | # Tauri + Vue + Vite Template
|
2 | 2 |
|
3 |
| -## Rust 踩坑: |
4 |
| - |
5 |
| -> cargo workspace 问题: |
6 |
| -
|
7 |
| -- ❌ `子 repo`, 尽量独立, 不要使用`父 workspace`, 会导致 tauri build 失败 |
8 |
| - - case: sqlx 在 workspace 下, build [依赖报错(误报)](https://github.com/launchbadge/sqlx/issues/1604), 但是单独 |
9 |
| - build 是可以的 |
10 |
| -- ❌ workspace 过大, 会导致 IDE 索引宏, 失效 |
11 |
| -- ❌ 猜测: workspace 公共的lib, 版本(开启 feature)不一致, 在编译时, 会冲突. |
12 |
| - - 部分冲突, 是隐式的. cargo clean + build 就会发现很多问题 |
13 |
| - |
14 | 3 | ## Rust 插件集成:
|
15 | 4 |
|
16 | 5 | - https://github.com/tauri-apps/awesome-tauri#plugins
|
|
50 | 39 | - [tokio-tungstenite](https://github.com/snapview/tokio-tungstenite)
|
51 | 40 | - 当前社区首选
|
52 | 41 |
|
| 42 | +## Rust 踩坑: |
| 43 | + |
| 44 | +> cargo workspace 问题: |
| 45 | +
|
| 46 | +- ❌ `子 repo`, 尽量独立, 不要使用`父 workspace`, 会导致 tauri build 失败 |
| 47 | + - case: sqlx 在 workspace 下, build [依赖报错(误报)](https://github.com/launchbadge/sqlx/issues/1604), 但是单独 |
| 48 | + build 是可以的 |
| 49 | +- ❌ workspace 过大, 会导致 IDE 索引宏, 失效 |
| 50 | +- ❌ 猜测: workspace 公共的lib, 版本(开启 feature)不一致, 在编译时, 会冲突. |
| 51 | + - 部分冲突, 是隐式的. cargo clean + build 就会发现很多问题 |
| 52 | + |
| 53 | +> sqlx 问题: |
| 54 | +
|
| 55 | +- ❌ `sqlx::query!() vs sqlx::query()` |
| 56 | + - query!() 宏误报 `找不到 db`, 而 query() 方法写法不会误报 |
| 57 | + - new() 方法中含有 db conn 初始化 |
| 58 | + - 猜测 query!() 是编译期, 尝试找 db conn, 而 query() 是运行时, 所以不会报错. |
| 59 | +- ❌ 故不建议在 app + sqlite 代码中使用 query!() 宏, |
| 60 | + - 搜索 GitHub 代码, 发现大多数人, 也都不用 query!(). |
| 61 | + [ - 官方 example 给的示例代码, 误导人. |
| 62 | + - query() 方法, 虽然用起来, 稍微麻烦一点, 但是运行时检测 db conn, 是更安全的. |
| 63 | + - 在运行时动态创建 sqlite 是很正常的. |
| 64 | + - 当然, 如果是写 sever 代码(远程连 mysql 这种), 继续使用 query!() 宏, 应该没问题(db一般都预创建好了) |
| 65 | + |
53 | 66 | ## Vue.js 集成:
|
54 | 67 |
|
55 | 68 | - [package.json](package.json)
|
|
0 commit comments