224 lines
9.7 KiB
JavaScript
224 lines
9.7 KiB
JavaScript
|
|
import { defineConfig } from 'vite';
|
||
|
|
import laravel from 'laravel-vite-plugin';
|
||
|
|
import tailwindcss from '@tailwindcss/vite';
|
||
|
|
import { viteStaticCopy } from 'vite-plugin-static-copy';
|
||
|
|
import * as packages from './package.json';
|
||
|
|
import fsExtra from 'fs-extra'; // Import fs-extra as a default import
|
||
|
|
import { join } from 'path';
|
||
|
|
|
||
|
|
export default defineConfig({
|
||
|
|
plugins: [
|
||
|
|
laravel({
|
||
|
|
input: [
|
||
|
|
'resources/css/app.css',
|
||
|
|
'resources/sass/app.scss',
|
||
|
|
'resources/js/app.js',
|
||
|
|
|
||
|
|
// Resources assets js file paths
|
||
|
|
'resources/assets/js/add-products',
|
||
|
|
'resources/assets/js/alerts',
|
||
|
|
'resources/assets/js/analytics-dashboard',
|
||
|
|
'resources/assets/js/apexcharts-area',
|
||
|
|
'resources/assets/js/apexcharts-bar',
|
||
|
|
'resources/assets/js/apexcharts-boxplot',
|
||
|
|
'resources/assets/js/apexcharts-bubble',
|
||
|
|
'resources/assets/js/apexcharts-candlestick',
|
||
|
|
'resources/assets/js/apexcharts-column',
|
||
|
|
'resources/assets/js/apexcharts-dayjs',
|
||
|
|
'resources/assets/js/apexcharts-funnel',
|
||
|
|
'resources/assets/js/apexcharts-heatmap',
|
||
|
|
'resources/assets/js/apexcharts-line',
|
||
|
|
'resources/assets/js/apexcharts-mixed',
|
||
|
|
'resources/assets/js/apexcharts-pie',
|
||
|
|
'resources/assets/js/apexcharts-polararea',
|
||
|
|
'resources/assets/js/apexcharts-radar',
|
||
|
|
'resources/assets/js/apexcharts-radialbar',
|
||
|
|
'resources/assets/js/apexcharts-rangearea',
|
||
|
|
'resources/assets/js/apexcharts-scatter',
|
||
|
|
'resources/assets/js/apexcharts-timeline',
|
||
|
|
'resources/assets/js/apexcharts-treemap',
|
||
|
|
'resources/assets/js/authentication-main',
|
||
|
|
'resources/assets/js/blog-create',
|
||
|
|
'resources/assets/js/blog-details',
|
||
|
|
'resources/assets/js/canada',
|
||
|
|
'resources/assets/js/chartjs-charts',
|
||
|
|
'resources/assets/js/chat',
|
||
|
|
'resources/assets/js/choices',
|
||
|
|
'resources/assets/js/color-picker',
|
||
|
|
'resources/assets/js/coming-soon',
|
||
|
|
'resources/assets/js/courses-dashboard',
|
||
|
|
'resources/assets/js/create-invoice',
|
||
|
|
'resources/assets/js/create-project',
|
||
|
|
'resources/assets/js/crm-companies',
|
||
|
|
'resources/assets/js/crm-contacts',
|
||
|
|
'resources/assets/js/crm-dashboard',
|
||
|
|
'resources/assets/js/crm-deals',
|
||
|
|
'resources/assets/js/crm-leads',
|
||
|
|
'resources/assets/js/crypto-buy_sell',
|
||
|
|
'resources/assets/js/crypto-currency-exchange',
|
||
|
|
'resources/assets/js/crypto-dashboard',
|
||
|
|
'resources/assets/js/crypto-marketcap',
|
||
|
|
'resources/assets/js/custom-switcher',
|
||
|
|
'resources/assets/js/custom',
|
||
|
|
'resources/assets/js/customers-list',
|
||
|
|
'resources/assets/js/datatables',
|
||
|
|
'resources/assets/js/date&time_pickers',
|
||
|
|
'resources/assets/js/defaultmenu',
|
||
|
|
'resources/assets/js/draggable-cards',
|
||
|
|
'resources/assets/js/echarts',
|
||
|
|
'resources/assets/js/ecommerce-dashboard',
|
||
|
|
'resources/assets/js/file-manager',
|
||
|
|
'resources/assets/js/fileupload',
|
||
|
|
'resources/assets/js/form-advanced',
|
||
|
|
'resources/assets/js/form-input-mask',
|
||
|
|
'resources/assets/js/form-wizard-init',
|
||
|
|
'resources/assets/js/fullcalendar',
|
||
|
|
'resources/assets/js/gallery',
|
||
|
|
'resources/assets/js/google-maps',
|
||
|
|
'resources/assets/js/grid',
|
||
|
|
'resources/assets/js/hrm-dashboard',
|
||
|
|
'resources/assets/js/invoice-list',
|
||
|
|
'resources/assets/js/job-candidate-details',
|
||
|
|
'resources/assets/js/job-details',
|
||
|
|
'resources/assets/js/job-list',
|
||
|
|
'resources/assets/js/job-search-candidate',
|
||
|
|
'resources/assets/js/job-search',
|
||
|
|
'resources/assets/js/jobs-dashboard',
|
||
|
|
'resources/assets/js/jobs-post',
|
||
|
|
'resources/assets/js/jsvectormap',
|
||
|
|
'resources/assets/js/landing',
|
||
|
|
'resources/assets/js/leaflet',
|
||
|
|
'resources/assets/js/mail-settings',
|
||
|
|
'resources/assets/js/mail',
|
||
|
|
'resources/assets/js/main',
|
||
|
|
'resources/assets/js/media-player',
|
||
|
|
'resources/assets/js/medical-dashboard',
|
||
|
|
'resources/assets/js/modal',
|
||
|
|
'resources/assets/js/nft-create',
|
||
|
|
'resources/assets/js/nft-dashboard',
|
||
|
|
'resources/assets/js/nft-details',
|
||
|
|
'resources/assets/js/nouislider',
|
||
|
|
'resources/assets/js/orders',
|
||
|
|
'resources/assets/js/pos-dashboard',
|
||
|
|
'resources/assets/js/prism-custom',
|
||
|
|
'resources/assets/js/product-details',
|
||
|
|
'resources/assets/js/products',
|
||
|
|
'resources/assets/js/profile',
|
||
|
|
'resources/assets/js/project-overview',
|
||
|
|
'resources/assets/js/projects-dashboard',
|
||
|
|
'resources/assets/js/quill-editor',
|
||
|
|
'resources/assets/js/ratings',
|
||
|
|
'resources/assets/js/reviews',
|
||
|
|
'resources/assets/js/russia',
|
||
|
|
'resources/assets/js/sales-dashboard',
|
||
|
|
'resources/assets/js/school-dashboard',
|
||
|
|
'resources/assets/js/search-results',
|
||
|
|
'resources/assets/js/select2',
|
||
|
|
'resources/assets/js/simplebar',
|
||
|
|
'resources/assets/js/social-media-dashboard',
|
||
|
|
'resources/assets/js/sortable',
|
||
|
|
'resources/assets/js/spain',
|
||
|
|
'resources/assets/js/sticky',
|
||
|
|
'resources/assets/js/stocks-dashboard',
|
||
|
|
'resources/assets/js/sweet-alerts',
|
||
|
|
'resources/assets/js/swiper',
|
||
|
|
'resources/assets/js/tagify',
|
||
|
|
'resources/assets/js/task-kanban-board',
|
||
|
|
'resources/assets/js/task-list',
|
||
|
|
'resources/assets/js/team',
|
||
|
|
'resources/assets/js/toasts',
|
||
|
|
'resources/assets/js/todolist',
|
||
|
|
'resources/assets/js/tour',
|
||
|
|
'resources/assets/js/us-merc-en',
|
||
|
|
'resources/assets/js/validation',
|
||
|
|
'resources/assets/js/widgets',
|
||
|
|
|
||
|
|
],
|
||
|
|
refresh: true,
|
||
|
|
}),
|
||
|
|
tailwindcss(),
|
||
|
|
|
||
|
|
viteStaticCopy({
|
||
|
|
targets: [
|
||
|
|
{
|
||
|
|
src: ([
|
||
|
|
'resources/assets/images/',
|
||
|
|
'resources/assets/audio/',
|
||
|
|
'resources/assets/video/',
|
||
|
|
'resources/assets/icon-fonts/',
|
||
|
|
'resources/assets/js/main.js',
|
||
|
|
'resources/assets/js/sticky.js',
|
||
|
|
'resources/assets/js/chat.js',
|
||
|
|
'resources/assets/js/show-password.js',
|
||
|
|
'resources/assets/js/coming-soon.js',
|
||
|
|
'resources/assets/js/two-step-verification.js',
|
||
|
|
'resources/assets/js/authentication-main.js',
|
||
|
|
'resources/assets/js/apex-github-data.js',
|
||
|
|
'resources/assets/js/apexcharts-candlestick-seriesdata.js',
|
||
|
|
'resources/assets/js/apexcharts-irregulardata.js',
|
||
|
|
'resources/assets/js/apexcharts-stock-prices.js',
|
||
|
|
'resources/assets/js/apexcharts-dayjs.js',
|
||
|
|
'resources/assets/js/dataseries.js',
|
||
|
|
'resources/assets/js/form-wizard.js',
|
||
|
|
]),
|
||
|
|
dest: 'assets/'
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}),
|
||
|
|
|
||
|
|
{
|
||
|
|
// Use a custom plugin for copying distribution files
|
||
|
|
name: 'copy-dist-files',
|
||
|
|
writeBundle: async () => {
|
||
|
|
const destDir = 'public/build/assets/libs'; // Update the destination directory
|
||
|
|
|
||
|
|
for (const dep of Object.keys(packages.dependencies)) {
|
||
|
|
const srcPath = join('node_modules', dep, 'dist');
|
||
|
|
const destPath = join(destDir, dep);
|
||
|
|
|
||
|
|
// Check if the 'dist' directory exists for the dependency
|
||
|
|
if (await fsExtra.pathExists(srcPath)) {
|
||
|
|
// Copy the distribution files (contents of 'dist') to the destination directory
|
||
|
|
await fsExtra.copy(srcPath, destPath, {
|
||
|
|
overwrite: true,
|
||
|
|
recursive: true,
|
||
|
|
});
|
||
|
|
|
||
|
|
// Remove the 'dist' directory from the destination
|
||
|
|
await fsExtra.remove(join(destPath, 'dist'));
|
||
|
|
} else {
|
||
|
|
// If 'dist' folder doesn't exist, check if the package itself exists and copy it.
|
||
|
|
const packageSrcPath = join('node_modules', dep);
|
||
|
|
const packageDestPath = join(destDir, dep);
|
||
|
|
|
||
|
|
if (await fsExtra.pathExists(packageSrcPath)) {
|
||
|
|
await fsExtra.copy(packageSrcPath, packageDestPath, {
|
||
|
|
overwrite: true,
|
||
|
|
recursive: true,
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
},
|
||
|
|
|
||
|
|
{
|
||
|
|
name: 'blade',
|
||
|
|
handleHotUpdate({ file, server }) {
|
||
|
|
if (file.endsWith('.blade.php')) {
|
||
|
|
server.ws.send({
|
||
|
|
type: 'full-reload',
|
||
|
|
path: '*',
|
||
|
|
});
|
||
|
|
}
|
||
|
|
},
|
||
|
|
}
|
||
|
|
|
||
|
|
],
|
||
|
|
build: {
|
||
|
|
chunkSizeWarningLimit: 1600,
|
||
|
|
outDir: 'public/build',
|
||
|
|
emptyOutDir: true,
|
||
|
|
},
|
||
|
|
});
|