You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.6 KiB
65 lines
1.6 KiB
import { defineConfig } from "vite";
|
|
import react from "@vitejs/plugin-react";
|
|
import { VitePWA } from "vite-plugin-pwa";
|
|
import { resolve } from "jsr:@std/path/resolve";
|
|
|
|
let hash = "";
|
|
try {
|
|
const command = new Deno.Command("git", {
|
|
args: ["rev-parse", "--short", "HEAD"],
|
|
stdout: "piped",
|
|
stderr: "piped",
|
|
});
|
|
const { code, stdout, stderr } = await command.output();
|
|
|
|
if (code === 0) {
|
|
hash = new TextDecoder().decode(stdout).trim();
|
|
} else {
|
|
const errorOutput = new TextDecoder().decode(stderr);
|
|
console.error("Error getting git hash:", errorOutput);
|
|
hash = "DEV";
|
|
}
|
|
} catch (error) {
|
|
console.error("Failed to execute git command:", error);
|
|
hash = "DEV";
|
|
}
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
react(),
|
|
VitePWA({
|
|
registerType: "autoUpdate",
|
|
strategies: "generateSW",
|
|
devOptions: {
|
|
enabled: false,
|
|
},
|
|
workbox: {
|
|
cleanupOutdatedCaches: true,
|
|
sourcemap: true,
|
|
},
|
|
}),
|
|
],
|
|
define: {
|
|
"import.meta.env.VITE_COMMIT_HASH": JSON.stringify(hash),
|
|
},
|
|
build: {
|
|
emptyOutDir: true,
|
|
assetsDir: "./",
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
"@app": resolve(Deno.cwd(), "./src"),
|
|
"@pages": resolve(Deno.cwd(), "./src/pages"),
|
|
"@components": resolve(Deno.cwd(), "./src/components"),
|
|
"@core": resolve(Deno.cwd(), "./src/core"),
|
|
"@layouts": resolve(Deno.cwd(), "./src/layouts"),
|
|
},
|
|
},
|
|
server: {
|
|
port: 3000,
|
|
headers: {
|
|
"Cross-Origin-Opener-Policy": "same-origin",
|
|
"Cross-Origin-Embedder-Policy": "require-corp",
|
|
},
|
|
},
|
|
});
|
|
|