2022-07-12 10:55:28 +02:00
|
|
|
import vue from "@vitejs/plugin-vue";
|
|
|
|
import { defineConfig } from "vite";
|
|
|
|
import path from "path";
|
|
|
|
import { VitePWA } from "vite-plugin-pwa";
|
|
|
|
import { visualizer } from "rollup-plugin-visualizer";
|
|
|
|
|
|
|
|
export default defineConfig(({ command }) => {
|
|
|
|
const isDev = command !== "build";
|
|
|
|
if (isDev) {
|
|
|
|
// Terminate the watcher when Phoenix quits
|
|
|
|
process.stdin.on("close", () => {
|
|
|
|
process.exit(0);
|
|
|
|
});
|
|
|
|
|
|
|
|
process.stdin.resume();
|
|
|
|
}
|
|
|
|
|
|
|
|
return {
|
|
|
|
plugins: [
|
|
|
|
vue(),
|
|
|
|
VitePWA({
|
2023-08-11 12:18:52 +02:00
|
|
|
registerType: "autoUpdate",
|
2022-07-12 10:55:28 +02:00
|
|
|
strategies: "injectManifest",
|
|
|
|
srcDir: "src",
|
|
|
|
filename: "service-worker.ts",
|
|
|
|
// injectRegister: "auto",
|
2022-08-12 16:46:44 +02:00
|
|
|
// devOptions: {
|
|
|
|
// enabled: true,
|
|
|
|
// },
|
2023-08-10 21:50:45 +02:00
|
|
|
manifest: {
|
|
|
|
name: "Mobilizon",
|
|
|
|
short_name: "Mobilizon",
|
|
|
|
orientation: "portrait-primary",
|
2023-08-11 12:18:52 +02:00
|
|
|
theme_color: "#ffd599",
|
2023-08-10 21:50:45 +02:00
|
|
|
icons: [
|
|
|
|
{
|
|
|
|
src: "./img/icons/android-chrome-192x192.png",
|
|
|
|
sizes: "192x192",
|
|
|
|
type: "image/png",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
src: "./img/icons/android-chrome-512x512.png",
|
|
|
|
sizes: "512x512",
|
|
|
|
type: "image/png",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
src: "./img/icons/android-chrome-maskable-192x192.png",
|
|
|
|
sizes: "192x192",
|
|
|
|
type: "image/png",
|
|
|
|
purpose: "maskable",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
src: "./img/icons/android-chrome-maskable-512x512.png",
|
|
|
|
sizes: "512x512",
|
|
|
|
type: "image/png",
|
|
|
|
purpose: "maskable",
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
2022-07-12 10:55:28 +02:00
|
|
|
}),
|
|
|
|
visualizer(),
|
|
|
|
],
|
|
|
|
build: {
|
|
|
|
manifest: true,
|
|
|
|
outDir: path.resolve(__dirname, "../priv/static"),
|
|
|
|
emptyOutDir: true,
|
2022-10-05 12:13:19 +02:00
|
|
|
sourcemap: true,
|
2022-07-12 10:55:28 +02:00
|
|
|
rollupOptions: {
|
|
|
|
// overwrite default .html entry
|
|
|
|
input: {
|
|
|
|
main: "src/main.ts",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
resolve: {
|
|
|
|
alias: {
|
|
|
|
"@": path.resolve(__dirname, "./src"),
|
2023-03-17 18:10:59 +01:00
|
|
|
unfetch: path.resolve(
|
|
|
|
__dirname,
|
|
|
|
"node_modules",
|
|
|
|
"unfetch",
|
|
|
|
"dist",
|
|
|
|
"unfetch.mjs"
|
|
|
|
),
|
2022-07-12 10:55:28 +02:00
|
|
|
},
|
|
|
|
},
|
|
|
|
css: {
|
|
|
|
preprocessorOptions: {
|
|
|
|
scss: {
|
|
|
|
sassOptions: {
|
|
|
|
quietDeps: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
test: {
|
|
|
|
environment: "jsdom",
|
|
|
|
resolve: {
|
|
|
|
alias: {
|
|
|
|
"@": path.resolve(__dirname, "./src"),
|
|
|
|
},
|
|
|
|
},
|
2022-09-21 10:33:50 +02:00
|
|
|
coverage: {
|
|
|
|
reporter: ["text", "json", "html"],
|
|
|
|
},
|
2022-07-12 10:55:28 +02:00
|
|
|
setupFiles: path.resolve(__dirname, "./tests/unit/setup.ts"),
|
2022-08-26 16:08:58 +02:00
|
|
|
include: [path.resolve(__dirname, "./tests/unit/specs/**/*.spec.ts")],
|
2022-07-12 10:55:28 +02:00
|
|
|
},
|
|
|
|
};
|
|
|
|
});
|