Maison >interface Web >js tutoriel >Pourquoi est-ce que j'obtiens une « Erreur de syntaxe : impossible d'utiliser l'instruction d'importation en dehors d'un module » dans Node.js ?

Pourquoi est-ce que j'obtiens une « Erreur de syntaxe : impossible d'utiliser l'instruction d'importation en dehors d'un module » dans Node.js ?

DDD
DDDoriginal
2024-12-05 03:30:13589parcourir

Why Am I Getting a

"SyntaxError : Impossible d'utiliser l'instruction d'importation en dehors d'un module" Expliqué et résolu

Dans les projets Node.js, l'erreur "SyntaxError : Cannot utiliser l'instruction d'importation en dehors d'un module" indique qu'une instruction d'importation est utilisée dans un fichier qui n'est pas reconnu comme module ES. Ce problème survient généralement lors de la mise à niveau vers des versions plus récentes de Babel ou Node.js.

Comprendre le problème

Dans Babel 7, le comportement par défaut consiste à interpréter les fichiers avec le Extension .js en tant que modules CommonJS. Les modules ES, en revanche, nécessitent un champ « type » défini sur « module » dans le fichier package.json le plus proche ou un nom explicite avec l'extension .mjs.

Résoudre l'erreur

Il existe deux options pour résoudre cette erreur :

Option 1 : définissez "type" sur "module" dans package.json

Ajoutez le champ "type" suivant à votre fichier package.json :

// package.json
{
  "type": "module"
}

Cela interprétera tous les fichiers .js et .mjs comme des modules ES, tandis que les fichiers individuels peuvent toujours être interprétés comme CommonJS en utilisant l'extension .cjs.

Option 2 : utilisez explicitement l'extension Extension .mjs

Nommez explicitement les fichiers qui doivent être traités comme des modules ES avec l'extension .mjs. Tous les autres fichiers portant l'extension .js seront interprétés comme CommonJS par défaut.

Considérations supplémentaires

  • Assurez-vous que la dernière version de Node.js est installée (13.2.0 est recommandé).
  • Si vous utilisiez auparavant Babel 6, il est nécessaire de mettre à jour les préréglages vers évitez d'autres erreurs.
  • Il est important d'utiliser systématiquement les modules ES ou CommonJS tout au long d'un projet pour maintenir la compatibilité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn