radfusion/vite.config.js
2025-01-04 12:58:02 +06:00

84 lines
2.3 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
*/
// Ppp JS Files
const appJsFiles = GetFilesArray('resources/js/*.js');
// Page JS Files
const pageJsFiles = GetFilesArray('resources/assets/js/*.js');
// Processing Vendor JS Files
const vendorJsFiles = GetFilesArray('resources/assets/vendor/js/*.js');
// Processing Libs JS Files
const LibsJsFiles = GetFilesArray('resources/assets/vendor/libs/**/*.js');
/**
* Scss Files
*/
// Processing Core, Themes & Pages Scss Files
const CoreScssFiles = GetFilesArray('resources/assets/vendor/scss/**/!(_)*.scss');
// Processing Libs Scss & Css Files
const LibsScssFiles = GetFilesArray('resources/assets/vendor/libs/**/!(_)*.scss');
const LibsCssFiles = GetFilesArray('resources/assets/vendor/libs/**/*.css');
const FaCssFiles = GetFilesArray('resources/fontawesome/scss/!(_)*.scss');
// Processing Fonts Scss Files
const FontsScssFiles = GetFilesArray('resources/assets/vendor/fonts/**/!(_)*.scss');
// 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: [
'resources/css/app.css',
'resources/assets/css/demo.css',
//'resources/js/app.js',
...appJsFiles,
...pageJsFiles,
...vendorJsFiles,
...LibsJsFiles,
'resources/js/laravel-user-management.js', // Processing Laravel User Management CRUD JS File
...CoreScssFiles,
...LibsScssFiles,
...LibsCssFiles,
...FaCssFiles,
...FontsScssFiles
],
refresh: true
}),
html(),
libsWindowAssignment()
]
});