| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- import { defineConfig } from 'vite';
- import laravel from 'laravel-vite-plugin';
- import html from '@rollup/plugin-html';
- import { globSync } from 'glob';
- import path from 'path';
- import iconsPlugin from './vite.icons.plugin.js';
-
- /**
- * Get Files from a directory
- * @param {string} query
- * @returns array
- */
- function GetFilesArray(query) {
- return globSync(query);
- }
-
- // 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');
-
- // Processing Libs Scss & Css Files
- const LibsScssFiles = GetFilesArray('resources/assets/vendor/libs/**/!(_)*.scss');
- const LibsCssFiles = GetFilesArray('resources/assets/vendor/libs/**/*.css');
-
- // Processing Core, Themes & Pages Scss Files
- const CoreScssFiles = GetFilesArray('resources/assets/vendor/scss/**/!(_)*.scss');
-
- // Processing Fonts Scss & JS Files
- const FontsScssFiles = GetFilesArray('resources/assets/vendor/fonts/!(_)*.scss');
- const FontsJsFiles = GetFilesArray('resources/assets/vendor/fonts/**/!(_)*.js');
- const FontsCssFiles = GetFilesArray('resources/assets/vendor/fonts/**/!(_)*.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');
- }
- return null;
- }
- };
- }
-
- export default defineConfig({
- plugins: [
- laravel({
- input: [
- 'resources/css/app.css',
- 'resources/assets/css/demo.css',
- 'resources/js/app.js',
- ...pageJsFiles,
- ...vendorJsFiles,
- ...LibsJsFiles,
- 'resources/js/laravel-user-management.js', // Processing Laravel User Management CRUD JS File
- ...CoreScssFiles,
- ...LibsScssFiles,
- ...LibsCssFiles,
- ...FontsScssFiles,
- ...FontsJsFiles,
- ...FontsCssFiles
- ],
- refresh: true
- }),
- html(),
- libsWindowAssignment(),
- iconsPlugin()
- ],
- server: {
- host: true,
- port: 5173,
- strictPort: true,
- hmr: {
- host: 'localhost'
- }
- },
- resolve: {
- alias: {
- '@': path.resolve(__dirname, 'resources')
- }
- },
- json: {
- stringify: true // Helps with JSON import compatibility
- },
- build: {
- commonjsOptions: {
- include: [/node_modules/] // Helps with importing CommonJS modules
- }
- }
- });
|