@hesy

Как включить hot-reload в Vite при разработке пакета для Laravel?

В папке с проектом Laravel лежит пакет /packages/helloworld, в нем свой composer.json и package.json.

Как включить hot-reload такой же как в самом Laravel?

Пытался сделать как ниже, но работает очень странно, если запустить npm run dev из самого проекта Laravel, то он подцепляется, а если из packages/helloworld то стили не грузятся, хотя в коде на странице файлы подцепились.

vite.config.js

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

export default defineConfig({
    publicDir: false,
    plugins: [
        // laravel([
        //     'resources/css/app.css',
        //     'resources/js/app.js',
        // ]),
        laravel({
            refresh: true,
            publicDirectory: 'public',
            // buildDirectory: 'public',
            // input: ['./resources/css/app.css', './resources/js/app.js'],
        }),
    ],
    build: {
        emptyOutDir: false,
        manifest: true,
        rollupOptions: {
            input: ['resources/js/app.js'],
            output: {
                entryFileNames: `assets/js/app.js`,
                assetFileNames: file => {
                    let ext = file.name.split('.').pop();

                    if (ext === 'css') {
                        return 'assets/css/app.css';
                    }

                    return 'assets/[name].[ext]';
                }
            }
        },
        outDir: 'public',
    },
});



package.json

"devDependencies": {
    ...
    "autoprefixer": "^10.4.14",
    "postcss": "^8.4.27",
    "tailwindcss": "^3.3.3",
    "laravel-vite-plugin": "^0.7.8",
    "vite": "^4.4.7",
    ...
},


app.blade.php

...
@vite(['resources/css/app.css', 'resources/js/app.js'])
или
@vite([helloworld_path('resources/css/app.css'), helloworld_path('resources/js/app.js')])
...
  • Вопрос задан
  • 294 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы