Adloun

JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 6 · Exercice de TD

Imports fautifs

Classes et modules · niveau 2

Énoncé

Le module prix.mjs exporte la fonction nommée enEuros ; le module livre.mjs exporte par défaut la classe Livre. Le programme suivant ne démarre pas. Trouver les trois erreurs, dans l'ordre où Node les signale quand on les corrige une à une, puis corriger.


import { Livre } from "./livre.mjs";
import enEuros from "./prix";

const l = new Livre("Le Petit Prince", 8.5);
console.log(l.etiquette(), enEuros(17));

Corrigé

Node résout tous les imports avant d'exécuter la moindre ligne, et s'arrête à la première erreur :

  • "./prix" : le fichier prix n'existe pas (ERR_MODULE_NOT_FOUND) ; l'extension est obligatoire, "./prix.mjs".
  • { Livre } demande un export nommé Livre, qui n'existe pas ; l'export par défaut s'importe sans accolades. Le message :

SyntaxError: The requested module './livre.mjs' does not provide
an export named 'Livre'
  • import enEuros from ... demande l'export par défaut de prix.mjs, qui n'en a pas : does not provide an export named 'default'.

import Livre from "./livre.mjs";
import { enEuros } from "./prix.mjs";

const l = new Livre("Le Petit Prince", 8.5);
console.log(l.etiquette(), enEuros(17));

Le Petit Prince — 8,50 € 17,00 €

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →