import { fileURLToPath, URL } from 'node:url' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import graphql from '@rollup/plugin-graphql'; import { viteRequire } from 'vite-require' import svgLoader from 'vite-svg-loader' import { sentryVitePlugin } from "@sentry/vite-plugin"; import { execSync } from 'child_process' require('dotenv').config(); // Get short Git commit hash function getGitCommitHash() { try { return execSync('git rev-parse --short HEAD').toString().trim() } catch (e) { console.warn('Could not retrieve Git commit hash') return 'unknown' } } const release = `ouatterrir@${getGitCommitHash()}` // https://vitejs.dev/config/ export default defineConfig({ plugins: [vue({ template: { compilerOptions: { whitespace: 'preserve' } } }), graphql(), viteRequire(), svgLoader({defaultImport: 'raw'}), sentryVitePlugin({ org: "figures-libres", project: "atlas-atterrissage.com", authToken: process.env.AUTH_TOKEN, release: { // name: "ouatterrir", name: release }, url: "https://frontlog.figli.io", }) ], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), '@stores': fileURLToPath(new URL('./src/stores', import.meta.url)), '@components': fileURLToPath(new URL('./src/components', import.meta.url)), '@views': fileURLToPath(new URL('./src/views', import.meta.url)), '@api': fileURLToPath(new URL('./src/api', import.meta.url)), // '@icons': fileURLToPath(new URL('./node_modules/vue-material-design-icons', import.meta.url)), '@node_modules': fileURLToPath(new URL('./node_modules', import.meta.url)) } }, css: { preprocessorOptions: { scss: { // example : additionalData: `@import "./src/design/styles/variables";` // dont need include file extend .scss additionalData: `@import "./src/assets/colors.scss";@import "./src/assets/common.scss";` }, }, }, build: { sourcemap: true, rollupOptions: { // https://rollupjs.org/configuration-options/ }, }, // https://github.com/vitejs/vite/discussions/7920 esbuild: { drop: ['console', 'debugger'], }, define: { __SENTRY_RELEASE__: JSON.stringify(release), } })