1 min read
Vite
Vite is a build tool that aims to provide a faster and leaner development experience for modern web projects. This guide is accurate as of Vite 5.4.8.
Checklist
- Use
../distasfrontendDistinsrc-tauri/tauri.conf.json. - Use
process.env.TAURI_DEV_HOSTas the development server host IP when set to run on iOS physical devices.
Example configuration
Update Tauri configuration
Assuming you have the following
devandbuildscripts in yourpackage.json:{ "scripts": { "dev": "vite", "build": "tsc && vite build", "preview": "vite preview", "tauri": "tauri" }}You can configure the Tauri CLI to use your Vite development server and dist folder along with the hooks to automatically run the Vite scripts:
{ "build": { "beforeDevCommand": "npm run dev", "beforeBuildCommand": "npm run build", "devUrl": "http://localhost:5173", "frontendDist": "../dist" }}tauri.conf.json
{ "build": { "beforeDevCommand": "yarn dev", "beforeBuildCommand": "yarn build", "devUrl": "http://localhost:5173", "frontendDist": "../dist" }}tauri.conf.json
{ "build": { "beforeDevCommand": "pnpm dev", "beforeBuildCommand": "pnpm build", "devUrl": "http://localhost:5173", "frontendDist": "../dist" }}tauri.conf.json
{ "build": { "beforeDevCommand": "deno task dev", "beforeBuildCommand": "deno task build", "devUrl": "http://localhost:5173", "frontendDist": "../dist" }}tauri.conf.json
Update Vite configuration:
import { defineConfig } from 'vite'; const host = process.env.TAURI_DEV_HOST; export default defineConfig({ // prevent vite from obscuring rust errors clearScreen: false, server: { // make sure this port matches the devUrl port in tauri.conf.json file port: 5173, // Tauri expects a fixed port, fail if that port is not available strictPort: true, // if the host Tauri is expecting is set, use it host: host || false, hmr: host ? { protocol: 'ws', host, port: 1421, } : undefined, watch: { // tell vite to ignore watching `src-tauri` ignored: ['**/src-tauri/**'], }, }, // Env variables starting with the item of `envPrefix` will be exposed in tauri's source code through `import.meta.env`. envPrefix: ['VITE_', 'TAURI_ENV_*'], build: { // Tauri uses Chromium on Windows and WebKit on macOS and Linux target: process.env.TAURI_ENV_PLATFORM == 'windows' ? 'chrome105' : 'safari13', // don't minify for debug builds minify: !process.env.TAURI_ENV_DEBUG ? 'esbuild' : false, // produce sourcemaps for debug builds sourcemap: !!process.env.TAURI_ENV_DEBUG, },});vite.config.js
Support on Open CollectiveSponsor on GitHub
© 2026 Tauri Contributors. CC-BY / MIT
Last updated Oct 08, 2026