import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; import { bunny } from 'laravel-vite-plugin/fonts'; import tailwindcss from '@tailwindcss/vite'; import { globSync } from 'glob'; import path from 'node:path'; const normalise = (file) => file.replaceAll('\\', '/'); const moduleCss = globSync([ 'Modules/*/Resources/assets/css/**/*.{css,scss,sass}', 'Modules/*/Resources/assets/sass/**/*.{css,scss,sass}', ]).map(normalise); const moduleJs = globSync([ 'Modules/*/Resources/assets/js/**/*.{js,ts}', ]).map(normalise); const stylistThemeCss = globSync([ 'Modules/Stylist/Resources/themes/*/css/**/*.{css,scss,sass}', ]).map(normalise); const inputs = [ 'resources/css/app.css', 'resources/js/app.js', /* @chisel-passkeys */ 'resources/js/passkeys.js', /* @end-chisel-passkeys */ ...moduleCss, ...moduleJs, ...stylistThemeCss, ]; export default defineConfig({ plugins: [ laravel({ input: [...new Set(inputs)], refresh: [ 'app/**', 'resources/views/**', 'routes/**', // Module templates and Livewire classes 'Modules/*/Resources/views/**', 'Modules/*/Resources/themes/**/views/**', 'Modules/*/App/Livewire/**', 'Modules/*/app/Livewire/**', // Module PHP classes that may contain Tailwind classes 'Modules/*/Http/**', 'Modules/*/View/**', ], fonts: [ bunny('Instrument Sans', { weights: [400, 500, 600], }), ], }), tailwindcss(), ], resolve: { alias: { '@': path.resolve(__dirname, 'resources/js'), '@modules': path.resolve(__dirname, 'Modules'), '@stylist': path.resolve( __dirname, 'Modules/Stylist/Resources', ), }, }, server: { cors: true, watch: { ignored: [ '**/storage/framework/views/**', '**/vendor/**', ], }, }, });