Wczytanie kodu aplikacji jako moduł

0

Pytanie trochę związane z PHP ale dotyczy Vite czyli chyba jednak bardziej JavaScript.

Mam sobie projekt który działa na Laravel + Vite. Jeśli ładuję zewnętrzny plik JavaScript zawierający tylko jakieś pomocnicze funkcje w JavaScript przy pomocy pliku vite.config.js

export default defineConfig({
    plugins: [
        laravel({
            input: [
                'resources/js/main.js'
            ],
            refresh: true,
        }),
    ],
});

Następnie w pliku blade.php

@vite(['resources/js/main.js'])

Niestety gdy próbuję odwoływać się do funkcji z tego pliku to dostaję błąd, że funkcja jest niedostępna.

W podglądzie źródła strony widzę kod

<script type="module" src="http://localhost:5173/resources/js/main.js"></script>

Po otwarcie tego źródła normalnie mam mój plik z funkcjami.
W pliku blade dodałem kod HTML i zamieniłem fragment type="module" na type="text/javascript"

<script type="text/javascript" src="http://localhost:5173/resources/js/main.jss" ></script>

Wtedy wszystko działa jak należy.

Moje pytanie czy ktoś wie jak w Vite dociągnąć ten plik JavaScript z type="text/javascript" a nie type="module" ?

0

Źle to robisz. Vite kompiluje js i w html includowany już nie jest main tylko script.js. Przeczytaj jeszcze raz dokumentację.

0
marcifo napisał(a):

Moje pytanie czy ktoś wie jak w Vite dociągnąć ten plik JavaScript z type="text/javascript" a nie type="module" ?

A chcesz to zrobić po co?

0

Rozwiązałem problem w następujący sposób:

<script type="text/javascript" src="{{ Vite::asset('resources/js/main.js') }}" ></script>
0

A powinieneś tak i wykorzystać builda

@vite('resources/js/app.js')

1 użytkowników online, w tym zalogowanych: 0, gości: 1