Nenhuma descrição
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

vite.config.js 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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/welcome.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. 'resources/js/ordine-notifica.js',
  58. ...CoreScssFiles,
  59. ...LibsScssFiles,
  60. ...LibsCssFiles,
  61. ...FontsScssFiles,
  62. ...FontsJsFiles,
  63. ...FontsCssFiles
  64. ],
  65. refresh: true
  66. }),
  67. html(),
  68. libsWindowAssignment(),
  69. iconsPlugin()
  70. ],
  71. server: {
  72. host: true,
  73. port: 5173,
  74. strictPort: true,
  75. hmr: {
  76. host: 'localhost'
  77. }
  78. },
  79. resolve: {
  80. alias: {
  81. '@': path.resolve(__dirname, 'resources')
  82. }
  83. },
  84. json: {
  85. stringify: true // Helps with JSON import compatibility
  86. },
  87. build: {
  88. commonjsOptions: {
  89. include: [/node_modules/] // Helps with importing CommonJS modules
  90. }
  91. }
  92. });