Anonymous
Laravel Inertia с Vue.js не перезагружается
Сообщение
Anonymous » 22 ноя 2024, 13:07
Я установил проект Laravel Inertia с Vue, и горячая перезагрузка не выполняет свою работу, даже если я нажму F5.
Чтобы изменения можно было применить в моем интерфейсе, мне нужно остановить разработку сценарий и перезапустите его, например, если я изменю содержимое
Я использую Laravel 11 с Vue 3 (Vite).
Вот мои файлы :
vite.config.js :
Код: Выделить всё
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import vue from '@vitejs/plugin-vue';
export default defineConfig({
plugins: [
laravel({
input: 'resources/js/app.js',
ssr: 'resources/js/ssr.js',
refresh: true,
}),
vue({
template: {
transformAssetUrls: {
base: null,
includeAbsolute: false,
},
},
}),
],
});
app.js:
Код: Выделить всё
import './bootstrap';
import '../css/app.css';
import 'remixicon/fonts/remixicon.css';
import { createApp, h } from 'vue';
import { createInertiaApp } from '@inertiajs/vue3';
import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers';
import { ZiggyVue } from '../../vendor/tightenco/ziggy';
import { createI18n } from 'vue-i18n';
import * as Sentry from '@sentry/vue';
const appName = import.meta.env.VITE_APP_NAME || 'Laravel';
createInertiaApp({
title: (title) => `${title} - ${appName}`,
resolve: (name) =>
resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue')),
setup({ el, App, props, plugin }) {
const locales = props.initialPage.props.locales;
let locale = Object.keys(locales).includes(navigator.language) ? navigator.language : 'fr';
if (localStorage.getItem('locale')) {
locale = localStorage.getItem('locale');
} else {
localStorage.setItem('locale', locale);
}
const app = createApp({ render: () => h(App, props) });
Sentry.init({
app,
dsn: import.meta.env.VITE_SENTRY_DSN,
integrations: [
Sentry.replayIntegration({
maskAllText: false,
blockAllMedia: false,
}),
],
// Session Replay
replaysSessionSampleRate: 0.1,
replaysOnErrorSampleRate: 1.0,
});
app.use(plugin)
.use(ZiggyVue)
.use(
createI18n({
locale:
props.initialPage.props.auth?.user?.locale ??
locale ??
props.initialPage.props.appLocale,
fallbackLocale: props.initialPage.props.appLocale,
messages: props.initialPage.props.localeMessages,
}),
)
.mount(el);
return app;
},
progress: {
color: '#4B5563',
},
});
app.blade.php:
Код: Выделить всё
{{ config('app.name', 'Laravel') }}
@googlefonts(['font' => 'Poppins','nonce' => csp_nonce()])
@routes(nonce: csp_nonce())
@vite(['resources/js/app.js', "resources/js/Pages/{$page['component']}.vue"])
@inertiaHead
@inertia
Я что-то неправильно настроил?
Подробнее здесь:
https://stackoverflow.com/questions/792 ... snt-reload
1732270049
Anonymous
Я установил проект Laravel Inertia с Vue, и горячая перезагрузка не выполняет свою работу, даже если я нажму F5. Чтобы изменения можно было применить в моем интерфейсе, мне нужно остановить разработку сценарий и перезапустите его, например, если я изменю содержимое Я использую Laravel 11 с Vue 3 (Vite). Вот мои файлы : vite.config.js : [code]import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; import vue from '@vitejs/plugin-vue'; export default defineConfig({ plugins: [ laravel({ input: 'resources/js/app.js', ssr: 'resources/js/ssr.js', refresh: true, }), vue({ template: { transformAssetUrls: { base: null, includeAbsolute: false, }, }, }), ], }); [/code] app.js: [code]import './bootstrap'; import '../css/app.css'; import 'remixicon/fonts/remixicon.css'; import { createApp, h } from 'vue'; import { createInertiaApp } from '@inertiajs/vue3'; import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers'; import { ZiggyVue } from '../../vendor/tightenco/ziggy'; import { createI18n } from 'vue-i18n'; import * as Sentry from '@sentry/vue'; const appName = import.meta.env.VITE_APP_NAME || 'Laravel'; createInertiaApp({ title: (title) => `${title} - ${appName}`, resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue')), setup({ el, App, props, plugin }) { const locales = props.initialPage.props.locales; let locale = Object.keys(locales).includes(navigator.language) ? navigator.language : 'fr'; if (localStorage.getItem('locale')) { locale = localStorage.getItem('locale'); } else { localStorage.setItem('locale', locale); } const app = createApp({ render: () => h(App, props) }); Sentry.init({ app, dsn: import.meta.env.VITE_SENTRY_DSN, integrations: [ Sentry.replayIntegration({ maskAllText: false, blockAllMedia: false, }), ], // Session Replay replaysSessionSampleRate: 0.1, replaysOnErrorSampleRate: 1.0, }); app.use(plugin) .use(ZiggyVue) .use( createI18n({ locale: props.initialPage.props.auth?.user?.locale ?? locale ?? props.initialPage.props.appLocale, fallbackLocale: props.initialPage.props.appLocale, messages: props.initialPage.props.localeMessages, }), ) .mount(el); return app; }, progress: { color: '#4B5563', }, }); [/code] app.blade.php: [code] {{ config('app.name', 'Laravel') }} @googlefonts(['font' => 'Poppins','nonce' => csp_nonce()]) @routes(nonce: csp_nonce()) @vite(['resources/js/app.js', "resources/js/Pages/{$page['component']}.vue"]) @inertiaHead @inertia [/code] Я что-то неправильно настроил? Подробнее здесь: [url]https://stackoverflow.com/questions/79214496/laravel-inertia-with-vue-js-doesnt-reload[/url]