Прошу помочь разобраться в связке Laravel и сборщика Vite.
Создаю сайт, где много калькуляторов на Vue.js каждая страница отдельный файл, компоненты могут повторятся.
1. app.js - использую, только для подключения общих библиотек, самого приложения в нем нет.
// Default Laravel bootstrapper, installs axios
import './bootstrap';
// Added: Actual Bootstrap JavaScript dependency
import 'bootstrap';
// Added: Popper.js dependency for popover support in Bootstrap
import '@popperjs/core';
2. Каждое Vue.js приложение создаю в отдельном js файле и в него импортирую Vue и компоненты
3. В Blade подключаю так
@vite('resources/js/app.js') // общий загрузчик, содержание выше
@vite('resources/js/box.js') // сама программа
4. чтобы отдельные js файлы добавились в манифест и собрались в продакшн добавлю каждый файл отдельно в секцию
vite.config.js
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue'
import laravel from 'laravel-vite-plugin';
export default defineConfig({
plugins: [
vue({
template: {
compilerOptions: {
// считать все теги с тире как пользовательские элементы
isCustomElement: (tag) => tag.includes('-')
}
}
}),
laravel({
input: [
'resources/sass/app.scss',
'resources/js/app.js',
'resources/js/box.js', // тут отдельной строкой каждый файл
],
refresh: true,
}),
],
resolve: {
alias: {
'vue': 'vue/dist/vue.esm-bundler.js'
}
},
});
Я правильно делаю, или это какие-то костыли?