73 lines
2.4 KiB
TypeScript
73 lines
2.4 KiB
TypeScript
// file: crates/apps/game-snake-poc-tauri/vite.config.ts
|
|
// version: 1
|
|
|
|
import { fileURLToPath } from "node:url";
|
|
import { resolve } from "node:path";
|
|
import { defineConfig, normalizePath } from "vite";
|
|
|
|
const appRoot = fileURLToPath(new URL(".", import.meta.url));
|
|
const repositoryRoot = normalizePath(resolve(appRoot, "../../.."));
|
|
const frontendRoot = normalizePath(resolve(appRoot, "frontend"));
|
|
const externalBuildRoot = normalizePath(resolve(repositoryRoot, "../builds/sasedev-games/game-snake-poc-tauri"));
|
|
const wasmRoot = normalizePath(resolve(externalBuildRoot, "wasm"));
|
|
const wasmModule = normalizePath(resolve(wasmRoot, "game_snake_poc_wasm.js"));
|
|
const frontendDist = normalizePath(resolve(externalBuildRoot, "dist"));
|
|
const viteCacheDir = normalizePath(resolve(externalBuildRoot, "vite-cache"));
|
|
const devHost = process.env.TAURI_DEV_HOST;
|
|
|
|
export default defineConfig({
|
|
base: "./",
|
|
cacheDir: viteCacheDir,
|
|
clearScreen: false,
|
|
root: frontendRoot,
|
|
publicDir: false,
|
|
input: {
|
|
main: normalizePath(resolve(frontendRoot, "main.html")),
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
"@snake-wasm": wasmModule,
|
|
},
|
|
},
|
|
build: {
|
|
outDir: frontendDist,
|
|
emptyOutDir: true,
|
|
minify: true,
|
|
sourcemap: false,
|
|
cssCodeSplit: true,
|
|
rolldownOptions: {
|
|
output: {
|
|
entryFileNames: "js/[name]-[hash].js",
|
|
chunkFileNames: "js/chunks/[name]-[hash].js",
|
|
assetFileNames: assetInfo => {
|
|
const originalName = assetInfo.names[0] ?? "";
|
|
const extension = originalName.substring(originalName.lastIndexOf(".") + 1).toLowerCase();
|
|
if (extension === "css") {
|
|
return "css/[name]-[hash][extname]";
|
|
}
|
|
if (extension === "wasm") {
|
|
return "wasm/[name]-[hash][extname]";
|
|
}
|
|
return "otherassets/[name][extname]";
|
|
},
|
|
},
|
|
},
|
|
},
|
|
server: {
|
|
port: 1436,
|
|
strictPort: true,
|
|
host: devHost || false,
|
|
fs: {
|
|
allow: [appRoot, repositoryRoot, externalBuildRoot],
|
|
},
|
|
ws: {
|
|
protocol: "ws",
|
|
host: devHost || "localhost",
|
|
port: 1437,
|
|
},
|
|
watch: {
|
|
ignored: ["**/src/**"],
|
|
},
|
|
},
|
|
});
|