Bez popisu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

vite.config.js 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import { defineConfig } from 'vite';
  2. import laravel from 'laravel-vite-plugin';
  3. import html from '@rollup/plugin-html';
  4. import { globSync } from 'glob';
  5. import path from 'path';
  6. import iconsPlugin from './vite.icons.plugin.js';
  7. /**
  8. * Get Files from a directory
  9. * @param {string} query
  10. * @returns array
  11. */
  12. function GetFilesArray(query) {
  13. return globSync(query);
  14. }
  15. // Page JS Files
  16. const pageJsFiles = GetFilesArray('resources/assets/js/*.js');
  17. // Processing Vendor JS Files
  18. const vendorJsFiles = GetFilesArray('resources/assets/vendor/js/*.js');
  19. // Processing Libs JS Files
  20. const LibsJsFiles = GetFilesArray('resources/assets/vendor/libs/**/*.js');
  21. // Processing Libs Scss & Css Files
  22. const LibsScssFiles = GetFilesArray('resources/assets/vendor/libs/**/!(_)*.scss');
  23. const LibsCssFiles = GetFilesArray('resources/assets/vendor/libs/**/*.css');
  24. // Processing Core, Themes & Pages Scss Files
  25. const CoreScssFiles = GetFilesArray('resources/assets/vendor/scss/**/!(_)*.scss');
  26. // Processing Fonts Scss & JS Files
  27. const FontsScssFiles = GetFilesArray('resources/assets/vendor/fonts/!(_)*.scss');
  28. const FontsJsFiles = GetFilesArray('resources/assets/vendor/fonts/**/!(_)*.js');
  29. const FontsCssFiles = GetFilesArray('resources/assets/vendor/fonts/**/!(_)*.css');
  30. // Processing Window Assignment for Libs like jKanban, pdfMake
  31. function libsWindowAssignment() {
  32. return {
  33. name: 'libsWindowAssignment',
  34. transform(src, id) {
  35. if (id.includes('jkanban.js')) {
  36. return src.replace('this.jKanban', 'window.jKanban');
  37. } else if (id.includes('vfs_fonts')) {
  38. return src.replaceAll('this.pdfMake', 'window.pdfMake');
  39. }
  40. return null;
  41. }
  42. };
  43. }
  44. export default defineConfig({
  45. plugins: [
  46. laravel({
  47. input: [
  48. 'resources/css/app.css',
  49. 'resources/css/guest-client.css',
  50. 'resources/css/saltacoda-guest.css',
  51. 'resources/assets/css/demo.css',
  52. 'resources/js/app.js',
  53. ...pageJsFiles,
  54. ...vendorJsFiles,
  55. ...LibsJsFiles,
  56. 'resources/js/laravel-user-management.js', // Processing Laravel User Management CRUD JS File
  57. ...CoreScssFiles,
  58. ...LibsScssFiles,
  59. ...LibsCssFiles,
  60. ...FontsScssFiles,
  61. ...FontsJsFiles,
  62. ...FontsCssFiles
  63. ],
  64. refresh: true
  65. }),
  66. html(),
  67. libsWindowAssignment(),
  68. iconsPlugin()
  69. ],
  70. server: {
  71. host: true,
  72. port: 5173,
  73. strictPort: true,
  74. hmr: {
  75. host: 'localhost'
  76. }
  77. },
  78. resolve: {
  79. alias: {
  80. '@': path.resolve(__dirname, 'resources')
  81. }
  82. },
  83. json: {
  84. stringify: true // Helps with JSON import compatibility
  85. },
  86. build: {
  87. commonjsOptions: {
  88. include: [/node_modules/] // Helps with importing CommonJS modules
  89. }
  90. }
  91. });