85 lines
2.2 KiB
JavaScript
85 lines
2.2 KiB
JavaScript
import { defineConfig } from 'vite';
|
|
import laravel from 'laravel-vite-plugin';
|
|
import html from '@rollup/plugin-html';
|
|
import { glob } from 'glob';
|
|
|
|
/**
|
|
* Get Files from a directory
|
|
* @param {string} query
|
|
* @returns array
|
|
*/
|
|
function GetFilesArray(query) {
|
|
return glob.sync(query);
|
|
}
|
|
/**
|
|
* Js Files
|
|
*/
|
|
// Processing Modules JS Files
|
|
const ModulesJsFiles = GetFilesArray('modules/Admin/Resources/**/*.js');
|
|
|
|
|
|
/**
|
|
* Scss Files
|
|
*/
|
|
// Processing Libs Scss & Css Files
|
|
const ModulesScssFiles = GetFilesArray('modules/Admin/Resources/**/!(_)*.scss');
|
|
const ModulesScsFiles = GetFilesArray('modules/Admin/Resources/**/*.css');
|
|
|
|
|
|
|
|
// Processing Website Vendor JS Files
|
|
const WebVendorJsFiles = GetFilesArray('resources/assets/vendor/**/*.js');
|
|
|
|
// Processing Website Libs JS Files
|
|
const WebJsFiles = GetFilesArray('resources/js/**/*.js');
|
|
|
|
// Processing Website Core, Themes, Libs Scss & Css Files
|
|
const WebVendorScsFiles = GetFilesArray('resources/assets/vendor/**/*.css');
|
|
const WebScsFiles = GetFilesArray('resources/css/**/*.css');
|
|
|
|
// Processing Window Assignment for Libs like jKanban, pdfMake
|
|
function libsWindowAssignment() {
|
|
return {
|
|
name: 'libsWindowAssignment',
|
|
|
|
transform(src, id) {
|
|
if (id.includes('jkanban.js')) {
|
|
return src.replace('this.jKanban', 'window.jKanban');
|
|
} else if (id.includes('vfs_fonts')) {
|
|
return src.replaceAll('this.pdfMake', 'window.pdfMake');
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
laravel({
|
|
input: [
|
|
...ModulesJsFiles,
|
|
...ModulesScssFiles,
|
|
...ModulesScsFiles,
|
|
...WebVendorJsFiles,
|
|
...WebJsFiles,
|
|
...WebVendorScsFiles,
|
|
...WebScsFiles
|
|
],
|
|
refresh: ['resources/**', 'routes/**', 'app/**', 'modules/**']
|
|
}),
|
|
html(),
|
|
libsWindowAssignment()
|
|
],
|
|
resolve: {
|
|
alias: {
|
|
'@admin': '/Modules/Admin/Resources'
|
|
}
|
|
},
|
|
server: {
|
|
watch: {
|
|
//ignored: ['!**/modules/**'],
|
|
usePolling: true,
|
|
interval: 300
|
|
}
|
|
}
|
|
});
|