mirror of
https://github.com/andrewyng/openworker.git
synced 2026-09-03 04:49:26 +00:00
37 lines
1.5 KiB
TypeScript
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_"],
|
|
};
|
|
});
|