vite.config.js

import laravel from "laravel-vite-plugin";
import { defineConfig } from "vite";

export default defineConfig({
    plugins: [
        laravel({
            input: [
                // Core
                "resources/css/core.css",

                // Frontend
                "resources/sass/frontend.scss",
                "resources/css/frontend.css",
                "resources/js/frontend.js",

                // Admin
                "resources/sass/admin.scss",
                "resources/css/admin.css",
                "resources/js/admin.js",
            ],
            refresh: true,
        }),
    ],
    build: {
        chunkSizeWarningLimit: "2MB",
        rollupOptions: {
            onwarn(warning, warn) {
                // suppress eval warnings
                if (warning.code === "EVAL") return;
                warn(warning);
            },
        },
    },
});

package.json

{
    "name": "laravel",
    "private": true,
    "type": "module",
    "scripts": {
        "dev": "vite build --watch",
        "build": "vite build",
        "prod": "vite build"
    },
    "devDependencies": {
        "axios": "^1.7.7",
        "bootstrap": "^5.3.3",
        "jquery": "^3.7.1",
        "laravel-vite-plugin": "^1.0.5",
        "rollup-plugin-visualizer": "^5.12.0",
        "sass": "^1.80.5",
        "vite": "^5.4.10"
    },
    "dependencies": {
        "@clairelizbet/copy-to-clipboard": "1.*",
        "@fortawesome/fontawesome-free": "6.*",
        "animate.css": "4.*",
        "aos": "ammannbe/simple-aos",
        "bootbox": "6.*",
        "bootstrap-touchspin": "4.*",
        "choices.js": "11.*",
        "cropperjs": "1.*",
        "datatables.net-bs5": "2.*",
        "datatables.net-buttons-bs5": "3.*",
        "datatables.net-plugins": "2.*",
        "datatables.net-responsive-bs5": "3.*",
        "flatpickr": "4.*",
        "jquery-autocomplete": "devbridge/jQuery-Autocomplete",
        "jquery-cropper": "1.*",
        "jquery-datatables-checkboxes": "1.*",
        "jquery-file-upload": "4.*",
        "jquery-mask-plugin": "1.*",
        "luxon": "3.*",
        "number_format-php": "1.*",
        "select2": "4.*",
        "signature_pad": "5.*",
        "slick-carousel": "kenwheeler/slick",
        "summernote-tmp-release": "0.*",
        "toastr": "2.*"
    }
}

bootstrap.js

// jQuery
import $ from "jquery";
window.jQuery = window.$ = $;

// Axios
import axios from "axios";
window.axios = axios;
window.axios.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest";