120 lines
3.8 KiB
JavaScript
120 lines
3.8 KiB
JavaScript
import { fileURLToPath } from "node:url";
|
|
import vue from "@vitejs/plugin-vue";
|
|
import vueJsx from "@vitejs/plugin-vue-jsx";
|
|
import AutoImport from "unplugin-auto-import/vite";
|
|
import Components from "unplugin-vue-components/vite";
|
|
import { defineConfig } from "vite";
|
|
import Pages from "vite-plugin-pages";
|
|
import Layouts from "vite-plugin-vue-layouts";
|
|
import vuetify from "vite-plugin-vuetify";
|
|
import laravel from "laravel-vite-plugin";
|
|
import viteCompression from "vite-plugin-compression";
|
|
|
|
// @ts-expect-error Known error: https://github.com/sxzz/unplugin-vue-macros/issues/257#issuecomment-1410752890
|
|
import DefineOptions from "unplugin-vue-define-options/vite";
|
|
// import laravel from "laravel-vite-plugin";
|
|
|
|
// https://vitejs.dev/config/
|
|
export default defineConfig({
|
|
plugins: [
|
|
viteCompression(),
|
|
laravel({
|
|
input: ["resources/js/main.js"],
|
|
refresh: true,
|
|
}),
|
|
vue({
|
|
template: {
|
|
transformAssetUrls: {
|
|
base: null,
|
|
includeAbsolute: false,
|
|
},
|
|
},
|
|
}),
|
|
vueJsx(),
|
|
// https://github.com/vuetifyjs/vuetify-loader/tree/next/packages/vite-plugin
|
|
vuetify({
|
|
styles: {
|
|
configFile: "resources/styles/variables/_vuetify.scss",
|
|
},
|
|
}),
|
|
Pages({
|
|
dirs: ["./resources/js/pages"],
|
|
}),
|
|
Layouts({
|
|
layoutsDirs: "./resources/js/layouts/",
|
|
}),
|
|
Components({
|
|
dirs: [
|
|
"resources/js/@core/components",
|
|
"resources/js/views/demos",
|
|
"resources/js/components",
|
|
],
|
|
dts: true,
|
|
}),
|
|
AutoImport({
|
|
eslintrc: {
|
|
enabled: true,
|
|
filepath: "./.eslintrc-auto-import.json",
|
|
},
|
|
imports: [
|
|
"vue",
|
|
"vue-router",
|
|
"@vueuse/core",
|
|
"@vueuse/math",
|
|
"pinia",
|
|
],
|
|
vueTemplate: true,
|
|
}),
|
|
DefineOptions(),
|
|
],
|
|
define: { "process.env": {} },
|
|
resolve: {
|
|
alias: {
|
|
"@core-scss": fileURLToPath(
|
|
new URL("./resources/styles/@core", import.meta.url)
|
|
),
|
|
"@": fileURLToPath(new URL("./resources/js", import.meta.url)),
|
|
"@themeConfig": fileURLToPath(
|
|
new URL("./themeConfig.js", import.meta.url)
|
|
),
|
|
"@core": fileURLToPath(
|
|
new URL("./resources/js/@core", import.meta.url)
|
|
),
|
|
"@layouts": fileURLToPath(
|
|
new URL("./resources/js/@layouts", import.meta.url)
|
|
),
|
|
"@images": fileURLToPath(
|
|
new URL("./resources/images/", import.meta.url)
|
|
),
|
|
"@styles": fileURLToPath(
|
|
new URL("./resources/styles/", import.meta.url)
|
|
),
|
|
"@configured-variables": fileURLToPath(
|
|
new URL(
|
|
"./resources/styles/variables/_template.scss",
|
|
import.meta.url
|
|
)
|
|
),
|
|
"@axios": fileURLToPath(
|
|
new URL("./resources/js/plugins/axios", import.meta.url)
|
|
),
|
|
"@validators": fileURLToPath(
|
|
new URL(
|
|
"./resources/js/@core/utils/validators",
|
|
import.meta.url
|
|
)
|
|
),
|
|
apexcharts: fileURLToPath(
|
|
new URL("node_modules/apexcharts-clevision", import.meta.url)
|
|
),
|
|
},
|
|
},
|
|
build: {
|
|
chunkSizeWarningLimit: 5000,
|
|
},
|
|
optimizeDeps: {
|
|
exclude: ["vuetify"],
|
|
entries: ["./resources/js/**/*.vue"],
|
|
},
|
|
});
|