説明なし
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

vite.config.js 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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/assets/css/demo.css',
  50. 'resources/js/app.js',
  51. ...pageJsFiles,
  52. ...vendorJsFiles,
  53. ...LibsJsFiles,
  54. 'resources/js/laravel-user-management.js', // Processing Laravel User Management CRUD JS File
  55. ...CoreScssFiles,
  56. ...LibsScssFiles,
  57. ...LibsCssFiles,
  58. ...FontsScssFiles,
  59. ...FontsJsFiles,
  60. ...FontsCssFiles
  61. ],
  62. refresh: true
  63. }),
  64. html(),
  65. libsWindowAssignment(),
  66. iconsPlugin()
  67. ],
  68. server: {
  69. host: true,
  70. port: 5173,
  71. strictPort: true,
  72. hmr: {
  73. host: 'localhost'
  74. }
  75. },
  76. resolve: {
  77. alias: {
  78. '@': path.resolve(__dirname, 'resources')
  79. }
  80. },
  81. json: {
  82. stringify: true // Helps with JSON import compatibility
  83. },
  84. build: {
  85. commonjsOptions: {
  86. include: [/node_modules/] // Helps with importing CommonJS modules
  87. }
  88. }
  89. });