Exportation inattendue de jetons : prise en charge du module ES6
Rencontrer l'erreur « Exportation inattendue de jetons » lors de la tentative d'exécution du code ES6 peut être déroutant problème. Cette erreur se produit lorsque l'environnement d'exécution ne prend pas en charge la syntaxe du module EcmaScript (ESM) que vous utilisez.
Comprendre ESM :
ESM, souvent appelé " ES6 Modules", a introduit un système de modules pour JavaScript, permettant l'encapsulation du code et une gestion plus facile des dépendances. Il utilise le mot-clé export pour définir les modules, rendant l'organisation du code plus explicite.
Prise en charge d'ESM :
Les versions NodeJS inférieures à la v14.13.0 ne prenaient pas en charge ESM et s'appuyaient à la place sur les modules CommonJS, qui utilisaient la syntaxe de la propriété module.exports. Cependant, les versions plus récentes de NodeJS (v14.13.0 et supérieures) prennent en charge ESM, à condition qu'il soit explicitement activé.
Solutions :
Activer ESM dans NodeJS (v14.13.0 et supérieures) .13.0 ):
Modifiez le fichier package.json de votre projet et définissez la propriété "type" sur "module":
{ ... "type": "module", ... }
Refactoriser avec la syntaxe du module CommonJS :
Pour les anciennes versions de NodeJS, refactorisez votre code pour utiliser la syntaxe du module CommonJS :
// Example ES6 module export class MyClass { constructor() { console.log("es6"); } } // CommonJS module equivalent module.exports = class MyClass { constructor() { console.log("commonJs"); } };
Utilisez TypeScript et ts-node :
Envisagez d'utiliser TypeScript avec les packages npm ts-node ou ts-node-dev. TypeScript transpile en JavaScript au moment de la compilation, ce qui rend le code ES6 compatible avec les anciennes versions de NodeJS.
Transpilez ESM vers CommonJS :
Utilisez esbuild (installé via npm) pour transpiler votre ES6 JavaScript au format CommonJS, lui permettant de s'exécuter dans des environnements sans prise en charge native d'ESM.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3