Files
openworker/surfaces/gui/vite.config.ts
T

37 lines
1.5 KiB
TypeScript

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import fs from "node:fs";
import os from "node:os";
import path from "node:path";
// `base: "./"` makes built asset URLs relative, so the bundle loads from the `tauri://`
// origin in the desktop shell (absolute `/assets` 404s there); a server-hosted build is
// unaffected. Dev runs on a fixed port (1420) with strictPort so the Tauri webview always
// loads the vite instance Tauri itself spawns (a drifting port would make the window load a
// stale/other server). `tauri.conf.json` devUrl must match this.
export default defineConfig(({ command }) => {
let devToken = "";
if (command === "serve") {
const state =
process.env.COWORKER_STATE_DIR ||
(process.platform === "win32"
? path.join(process.env.APPDATA || os.homedir(), "coworker")
: path.join(os.homedir(), ".config", "coworker"));
try {
devToken = fs.readFileSync(path.join(state, "sidecar-8765.token"), "utf8").trim();
} catch {
// The Tauri dev shell injects its in-memory token at runtime. Plain browser dev
// shows the normal startup retry until the standalone server/token file exists.
}
}
return {
base: "./",
plugins: [react()],
server: { port: 1420, strictPort: true },
define: { __COWORKER_DEV_TOKEN__: JSON.stringify(devToken) },
// Tauri CLI looks for these; harmless for the browser build.
clearScreen: false,
envPrefix: ["VITE_", "TAURI_"],
};
});