46 lines
1.0 KiB
JavaScript
46 lines
1.0 KiB
JavaScript
|
import { defineConfig } from "vite";
|
||
|
import vue from "@vitejs/plugin-vue";
|
||
|
import { VitePWA } from "vite-plugin-pwa";
|
||
|
import dynamicImportVars from "@rollup/plugin-dynamic-import-vars";
|
||
|
import { esbuildCommonjs } from "@originjs/vite-plugin-commonjs";
|
||
|
import path from "path";
|
||
|
|
||
|
export default defineConfig({
|
||
|
plugins: [vue(), VitePWA({})],
|
||
|
build: {
|
||
|
// generate manifest.json in outDir
|
||
|
manifest: true,
|
||
|
minify: true,
|
||
|
rollupOptions: {
|
||
|
// overwrite default .html entry
|
||
|
input: "src/main.ts",
|
||
|
plugins: [
|
||
|
dynamicImportVars({
|
||
|
// options
|
||
|
}),
|
||
|
],
|
||
|
},
|
||
|
outDir: path.resolve(__dirname, "../priv/static"),
|
||
|
},
|
||
|
resolve: {
|
||
|
alias: {
|
||
|
"@": path.resolve(__dirname, "/src"),
|
||
|
},
|
||
|
},
|
||
|
optimizeDeps: {
|
||
|
esbuildOptions: {
|
||
|
plugins: [esbuildCommonjs(["date-fns"])],
|
||
|
},
|
||
|
},
|
||
|
css: {
|
||
|
preprocessorOptions: {
|
||
|
scss: {
|
||
|
additionalData: `@use "@/variables.scss" as *;`,
|
||
|
sassOptions: {
|
||
|
quietDeps: true,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
});
|