purityselect/vite.config.js
2024-10-25 01:05:27 +05:00

106 lines
3.2 KiB
JavaScript

import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import laravel from 'laravel-vite-plugin'
import { fileURLToPath } from 'node:url'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { defineConfig } from 'vite'
import vuetify from 'vite-plugin-vuetify'
import { resolve } from 'path';
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
laravel({
input: ['resources/js/main.js'],
refresh: true,
}),
vue({
template: {
transformAssetUrls: {
base: null,
includeAbsolute: false,
},
},
}),
vueJsx(),
// Docs: https://github.com/vuetifyjs/vuetify-loader/tree/master/packages/vite-plugin
vuetify({
styles: {
configFile: 'resources/styles/variables/_vuetify.scss',
additionalData: `
@import "./../node_modules/bootstrap/scss/bootstrap";
@import "./../node_modules/@vueform/vueform/themes/bootstrap/scss/index.scss";
`
},
}),
Components({
dirs: ['resources/js/@core/components'],
dts: true,
}),
// Docs: https://github.com/antfu/unplugin-auto-import#unplugin-auto-import
AutoImport({
eslintrc: {
enabled: true,
filepath: './.eslintrc-auto-import.json',
},
imports: ['vue', 'vue-router', '@vueuse/core', '@vueuse/math', 'pinia'],
vueTemplate: true,
}),
],
define: { 'process.env': {} },
resolve: {
alias: {
'@core-scss': fileURLToPath(new URL('./resources/styles/@core',
import.meta.url)),
'@': fileURLToPath(new URL('./resources/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)),
'@vendor': fileURLToPath(new URL('./resources/themestyle/',
import.meta.url)),
'@configured-variables': fileURLToPath(new URL('./resources/styles/variables/_template.scss',
import.meta.url)),
'@customPlugin': fileURLToPath(new URL('./resources/js/plugins/custom',
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)),
},
},
// css: {
// preprocessorOptions: {
// scss: {
// additionalData: `@import "./resources/js/@core/scss/_variables.scss";`
// }
// }
// },
build: {
chunkSizeWarningLimit: 5000,
manifest: true, // Ensure this is present to generate manifest.json
rollupOptions: {
input: {
main: resolve(__dirname, 'resources/js/main.js'),
},
},
outDir: 'public/build', // This is where your build files will be generated
},
optimizeDeps: {
exclude: ['vuetify'],
entries: [
'./resources/js/**/*.vue',
],
},
})