You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Build frontend (runs vue-tsc --noEmit then vite build)
npm run preview
Preview built frontend
Tauri (Full App)
Command
Description
npm run tauri dev
Start Tauri in development mode
npm run tauri build
Build production executable (.exe, .msi, .dmg, .app, etc.)
Running Single Commands
# Type check only (no emit)
npx vue-tsc --noEmit
# Build frontend only
npx vite build
# Build Tauri only (requires frontend built first)cd src-tauri && cargo build --release
Code Style Guidelines
General Principles
Use TypeScript for all new code (strict mode enabled)
Enable strict type checking (strict: true in tsconfig)
Use ES2020+ features
Prefer functional components with Composition API (<script setup>)
TypeScript Conventions
// Interface naming: PascalCase, prefix with descriptive nameinterfaceScanProgress{current: number;total: number;}// Type for component refsconstcount=ref<number>(0);// Optional propertiesinterface FoundDomain {use ?
domain: string;
title?: string;// optional}
// Always wrap async calls in try-catchasyncfunctionloadData(){try{constdata=awaitinvoke<MyType>("get_data");returndata;}catch(e){console.error(e);// Log error// Handle gracefully - set error state or show user messagereturnnull;}}// Use optional chaining and nullish coalescingconsttitle=foundDomain?.title??"No Title";
CSS/Styling
Use Tailwind CSS v4 for utility classes when possible
Keep custom CSS minimal and scoped to components
Follow existing color scheme (primary: #0095f6)
Use BEM-like naming for custom classes: .block-element--modifier
Rust Backend (src-tauri/)
Use Rust 2021 edition
Enable strict linting: #![deny(warnings)]
Follow standard Rust naming (snake_case for functions/variables)
Use serde for serialization/deserialization with Tauri commands
#[tauri::command]asyncfnget_local_ip() -> Result<String,String>{// Return Result to allow error propagation to frontendOk(ip_address)}