最近放假了,就想着折腾下自己,用 Tauri 看看能不能写点小工具。
在使用cargo create-tauri-app
命令创建好项目后,执行cargo tauri dev
报错,如下图:
报错日志很清晰,端口号1420
被拒绝了,那么大概可以推出两点:第一,1420
应该是 Tauri 的默认端口号;第二,1420
端口号应该是保留端口。
后在 Tauri 的 issue 里找到了:[bug] listen EACCES: permission denied ::1:1420 · Issue #6804 · tauri-apps/tauri
里面讨论的情况与猜测一致,并且讨论中也给出了解决方案,那就是修改 Tauri 创建后的项目的默认端口号为非保留端口,比如可以改成 Vite 默认的端口号5173
。具体修改2个配置,需要注意,2个配置端口号要保持一致:
1. 修改 vite.config.js (作者这里选的前端开发语言是js)
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
// https://vitejs.dev/config/
export default defineConfig(async () => ({
plugins: [vue()],
// Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
//
// 1. prevent vite from obscuring rust errors
clearScreen: false,
// 2. tauri expects a fixed port, fail if that port is not available
server: {
port: 5173, // 修改此处
strictPort: true,
watch: {
// 3. tell vite to ignore watching `src-tauri`
ignored: ["**/src-tauri/**"],
},
},
}));
2. 修改 tauri.conf.json(在/src-tauri路径下)
{
"build": {
"beforeDevCommand": "npm run dev",
"beforeBuildCommand": "npm run build",
"devPath": "http://localhost:5173", // 修改此处
"distDir": "../dist"
},
"package": {
"productName": "tauri-vite-app",
"version": "0.0.0"
},
"tauri": {
"allowlist": {
"all": false,
"shell": {
"all": false,
"open": true
}
},
"windows": [
{
"fullscreen": false,
"resizable": true,
"title": "tauri-vite-app",
"width": 800,
"height": 600
}
],
"security": {
"csp": null
},
"bundle": {
"active": true,
"targets": "all",
"identifier": "com.tauri.dev",
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/128x128@2x.png",
"icons/icon.icns",
"icons/icon.ico"
]
}
}
}
修改完毕后,重新执行cargo tauri dev
,成功编译运行。