Hello les gens,

Tout simplement... je souhaite utiliser VueRouter, mais impossible de l'importer.

J'utilise ce tuto : https://router.vuejs.org/guide/

import { createApp } from 'vue'
import App from './App.vue'

// Import vendors
// Qu'est-ce qui n'est pas bon dans cette directive ?
import VueRouter from 'vue-router';
// import { VueRouter } from 'vue-router'; --> fonctionne pas non pus

// Import Components
const HomeDisplay = { template: '<div>Home</div>' }
const AboutDisplay = { template: '<div>About</div>' }

// Create the Router
const router = VueRouter.createRouter({
    history: VueRouter.createWebHashHistory(),
    routes: [
        { path: '/', component: HomeDisplay },
        { path: '/about', component: AboutDisplay }
    ]
})

const app: App = createApp(App);
app.use(router);
app.mount('#app');

Ce que je veux

Je veux que VueRouter soit importé pour pouvoir l'utiliser.

Ce que j'obtiens

L'import provoque une erreur JS : "Uncaught SyntaxError: ambiguous indirect export: default"

J'ai cherché sur le net, je n'ai pas trouvé grand chose, j'ai vu qu'en générale cette erreur est provoquée par l'absence d'accollade, j'ai essayé d'en mettre, ça fonctionne pas mieux...

La méthode décrite dans le tuto de Grafikart (datant de 7 ans) ne fonctionne pas non plus, probablement à cause de la version utilisée.

Voic les versions que j'utilise :
"vue": "3.2.47"
"vue-router": "4.1.6"

Avez-vous une idée d'où pourrait venir le problème svp ?

Merci d'avance

Mickaël

1 réponse


Soundboy39
Auteur
Réponse acceptée

C'est bon, j'ai pu solutionner mon problème, en fait il ne faut pas importer le module d"un seul bloc", mais fonction par fonction, ce qui donne (par exemple) :

// Import vendors
import { createRouter, createWebHistory } from 'vue-router'

Je n'avais jamais eu ce cas de figure jusqu'à présent... je me coucherai moins c.n ce soir.