87 lines
2.2 KiB
JavaScript
87 lines
2.2 KiB
JavaScript
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/**',
|
|
],
|
|
},
|
|
},
|
|
});
|