build and create deploy production
This commit is contained in:
191
vite.config.production.js
Normal file
191
vite.config.production.js
Normal file
@@ -0,0 +1,191 @@
|
||||
import { defineConfig } from "vite";
|
||||
import laravel from "laravel-vite-plugin";
|
||||
import path from "path";
|
||||
|
||||
export default defineConfig({
|
||||
server: {
|
||||
host: '0.0.0.0',
|
||||
hmr: {
|
||||
host: 'localhost'
|
||||
},
|
||||
watch: {
|
||||
usePolling: true
|
||||
}
|
||||
},
|
||||
build: {
|
||||
outDir: 'public/build',
|
||||
assetsDir: 'assets',
|
||||
manifest: true,
|
||||
// Optimasi untuk server dengan resource terbatas
|
||||
minify: 'terser',
|
||||
chunkSizeWarningLimit: 1000,
|
||||
rollupOptions: {
|
||||
output: {
|
||||
manualChunks: {
|
||||
// Split vendor chunks untuk mengurangi memory usage
|
||||
vendor: ['bootstrap', 'moment', 'axios'],
|
||||
charts: ['apexcharts'],
|
||||
maps: ['leaflet', 'jsvectormap', 'gmaps'],
|
||||
ui: ['sweetalert2', 'flatpickr', 'quill', 'dropzone'],
|
||||
forms: ['gridjs', 'simplebar'],
|
||||
// Group by functionality to reduce memory usage per chunk
|
||||
dashboards: [
|
||||
'resources/js/dashboards/bigdata.js',
|
||||
'resources/js/dashboards/pbg.js',
|
||||
'resources/js/dashboards/potentials/inside_system.js',
|
||||
'resources/js/dashboards/potentials/outside_system.js'
|
||||
],
|
||||
data: [
|
||||
'resources/js/data/umkm/data-umkm.js',
|
||||
'resources/js/data/tourisms/data-tourisms.js',
|
||||
'resources/js/data/advertisements/data-advertisements.js'
|
||||
]
|
||||
},
|
||||
entryFileNames: 'assets/[name]-[hash].js',
|
||||
chunkFileNames: 'assets/[name]-[hash].js',
|
||||
assetFileNames: 'assets/[name]-[hash].[ext]'
|
||||
},
|
||||
// Optimasi memory - lebih konservatif
|
||||
maxParallelFileOps: 1,
|
||||
},
|
||||
// Compress assets
|
||||
assetsInlineLimit: 4096,
|
||||
// Reduce memory usage
|
||||
terserOptions: {
|
||||
compress: {
|
||||
drop_console: true,
|
||||
drop_debugger: true
|
||||
}
|
||||
}
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
"@": path.resolve(__dirname, "resources/js"),
|
||||
},
|
||||
},
|
||||
plugins: [
|
||||
laravel({
|
||||
input: [
|
||||
//css
|
||||
"resources/scss/icons.scss",
|
||||
"resources/scss/style.scss",
|
||||
"resources/scss/components/_circle.scss",
|
||||
"resources/scss/dashboards/_bigdata.scss",
|
||||
"resources/scss/dashboards/_lack-of-potential.scss",
|
||||
"resources/scss/components/_custom_circle.scss",
|
||||
"resources/scss/dashboards/potentials/_inside_system.scss",
|
||||
"resources/scss/dashboards/potentials/_outside_system.scss",
|
||||
"resources/scss/pages/quick-search/detail.scss",
|
||||
"resources/scss/pages/quick-search/index.scss",
|
||||
"resources/scss/pages/quick-search/result.scss",
|
||||
|
||||
"node_modules/quill/dist/quill.snow.css",
|
||||
"node_modules/quill/dist/quill.bubble.css",
|
||||
"node_modules/flatpickr/dist/flatpickr.min.css",
|
||||
"node_modules/flatpickr/dist/themes/dark.css",
|
||||
"node_modules/gridjs/dist/theme/mermaid.css",
|
||||
"node_modules/flatpickr/dist/themes/dark.css",
|
||||
"node_modules/gridjs/dist/theme/mermaid.min.css",
|
||||
|
||||
//js
|
||||
"resources/js/app.js",
|
||||
"resources/js/config.js",
|
||||
"resources/js/pages/dashboard.js",
|
||||
"resources/js/pages/chart.js",
|
||||
"resources/js/pages/form-quilljs.js",
|
||||
"resources/js/pages/form-fileupload.js",
|
||||
"resources/js/pages/form-flatepicker.js",
|
||||
"resources/js/pages/table-gridjs.js",
|
||||
"resources/js/pages/maps-google.js",
|
||||
"resources/js/pages/maps-vector.js",
|
||||
"resources/js/pages/maps-spain.js",
|
||||
"resources/js/pages/maps-russia.js",
|
||||
"resources/js/pages/maps-iraq.js",
|
||||
"resources/js/pages/maps-canada.js",
|
||||
"resources/js/data/advertisements/data-advertisements.js",
|
||||
"resources/js/data/advertisements/form-create-update.js",
|
||||
"resources/js/data/advertisements/form-upload.js",
|
||||
|
||||
//js-additional
|
||||
"resources/js/settings/syncronize/syncronize.js",
|
||||
"resources/js/settings/general/general-settings.js",
|
||||
"resources/js/tables/common-table.js",
|
||||
|
||||
// dashboards
|
||||
"resources/js/dashboards/bigdata.js",
|
||||
"resources/js/dashboards/potentials/inside_system.js",
|
||||
"resources/js/dashboards/potentials/outside_system.js",
|
||||
// roles
|
||||
"resources/js/roles/index.js",
|
||||
"resources/js/roles/create.js",
|
||||
"resources/js/roles/update.js",
|
||||
"resources/js/roles/role_menu.js",
|
||||
// users
|
||||
"resources/js/master/users/users.js",
|
||||
"resources/js/master/users/create.js",
|
||||
"resources/js/master/users/update.js",
|
||||
// menus
|
||||
"resources/js/menus/index.js",
|
||||
"resources/js/menus/create.js",
|
||||
"resources/js/menus/update.js",
|
||||
//data-settings
|
||||
"resources/js/data-settings/index.js",
|
||||
"resources/js/data-settings/create.js",
|
||||
"resources/js/data-settings/update.js",
|
||||
// business-industries
|
||||
"resources/js/business-industries/create.js",
|
||||
"resources/js/business-industries/update.js",
|
||||
"resources/js/business-industries/index.js",
|
||||
// umkm
|
||||
"resources/js/data/umkm/data-umkm.js",
|
||||
"resources/js/data/umkm/form-upload.js",
|
||||
"resources/js/data/umkm/form-create-update.js",
|
||||
// tourisms
|
||||
"resources/js/data/tourisms/data-tourisms.js",
|
||||
"resources/js/data/tourisms/form-create-update.js",
|
||||
"resources/js/data/tourisms/form-upload.js",
|
||||
"resources/js/report/tourisms/index.js",
|
||||
// spatial-plannings
|
||||
"resources/js/data/spatialPlannings/data-spatialPlannings.js",
|
||||
"resources/js/data/spatialPlannings/form-create-update.js",
|
||||
"resources/js/data/spatialPlannings/form-upload.js",
|
||||
// customers
|
||||
"resources/js/customers/upload.js",
|
||||
"resources/js/customers/index.js",
|
||||
"resources/js/customers/create.js",
|
||||
"resources/js/customers/edit.js",
|
||||
"resources/js/dashboards/pbg.js",
|
||||
// maps
|
||||
"resources/js/maps/maps-kml.js",
|
||||
// laporan pimpinan
|
||||
"resources/js/bigdata-resumes/index.js",
|
||||
"resources/js/chatbot/index.js",
|
||||
"resources/js/chatbot-pimpinan/index.js",
|
||||
//pbg-task
|
||||
"resources/js/pbg-task/index.js",
|
||||
"resources/js/pbg-task/show.js",
|
||||
"resources/js/pbg-task/create.js",
|
||||
// google-sheets
|
||||
"resources/js/data/google-sheet/index.js",
|
||||
// quick-search
|
||||
"resources/js/quick-search/index.js",
|
||||
"resources/js/quick-search/result.js",
|
||||
"resources/js/quick-search/detail.js",
|
||||
// growth-report
|
||||
"resources/js/report/growth-report/index.js",
|
||||
// dummy
|
||||
"resources/js/approval/index.js",
|
||||
"resources/js/invitations/index.js",
|
||||
"resources/js/payment-recaps/index.js",
|
||||
"resources/js/report-pbg-ptsp/index.js",
|
||||
"resources/js/tpa-tpt/index.js",
|
||||
"resources/js/report-payment-recaps/index.js",
|
||||
],
|
||||
refresh: true,
|
||||
}),
|
||||
],
|
||||
// Limit memory usage
|
||||
esbuild: {
|
||||
target: 'es2015'
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user