Проблема с ленивым роутингом на Vue
Всем привет!
Есть проблема с тем, что view IndexOpr не работает и выдается ошибка: "TypeError: Cannot read properties of null (reading 'nextSibling')". Причем "nextSibling" нигде не используется(это сгенерировано Vue).
Примечательно, что вместе с загрузкой IndexOpr.js, загружается заново и index.js и на сколько я понимаю, ошибка как раз и происходит.
Обычный роутинг работает без нареканий, но ожидается что файлы будут подгружаться по надобности.
UPD: При добавлении css во view динамически подгружаемой страницы вылезает новая ошибка: "GET http://Локальный_сервер/assets/IndexOpr.js net::ERR_ABORTED 404 (Not Found)". Тут проблема заключается в том, что путь отображается не относительно index.js(Основного файла vue после build).
Если кто-то сталкивался с похожей проблемой или есть мысли как решить данную проблему - буду безумно благодарен!
Route:
import { createRouter, createWebHistory } from 'vue-router';
import HomeView from '@/views/HomeView.vue';
import IndexSdo from '@/views/IndexSdo.vue';
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/index-vue.html',
name: 'home',
component: HomeView
},
{
path: '/index-opr.html',
name: 'index-opr',
component: ()=>import('@/views/IndexOpr.vue'),
},
{
path: '/index-sdo.html',
name: 'index-sdo',
component: IndexSdo
},
]
})
export default router
Vite.config:
export default defineConfig({
plugins: [
vue(),
vueJsx(),
VueDevTools(),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
},
build: {
rollupOptions: {
output: {
entryFileNames: `assets/[name].js`,
chunkFileNames: `assets/[name].js`,
assetFileNames: `assets/[name].[ext]`
}
}
},
})
Стек: yii2, vue 3, vite
Ответы (1 шт):
Проблема заключалась в хэше, который подключал ассет yii:2
. Стоило его отключить, как все заработало.
В моем случае TypeError: Cannot read properties of null (reading 'nextSibling')
означает, что index.js
подключается дважды из-за того, что IndexOpr
не мог найти index.js
файл.
Надеюсь, кому-нибудь поможет это решение в будущем.