Exportação de token inesperada: adotando suporte ao módulo ES6
Encontrar o erro "Exportação de token inesperada" ao tentar executar o código ES6 pode ser desconcertante emitir. Este erro surge quando o ambiente de tempo de execução não tem suporte para a sintaxe do Módulo EcmaScript (ESM) que você está usando.
Compreendendo o ESM:
ESM, geralmente chamado de " Módulos ES6", introduziu um sistema de módulos para JavaScript, permitindo encapsulamento de código e gerenciamento mais fácil de dependências. Ele utiliza a palavra-chave export para definir módulos, tornando a organização do código mais explícita.
Suporte para ESM:
As versões do NodeJS abaixo da v14.13.0 não suportavam ESM e, em vez disso, dependiam em módulos CommonJS, que usavam a sintaxe da propriedade module.exports. No entanto, versões mais recentes do NodeJS (v14.13.0 e superior) suportam ESM, desde que esteja explicitamente habilitado. .13.0 ):
Edite o arquivo package.json do seu projeto e defina a propriedade "type" como "módulo":
{ ... "tipo": "módulo", ... }Refator com sintaxe do módulo CommonJS:
Para versões mais antigas do NodeJS, refatore seu código para usar a sintaxe do módulo CommonJS:{ ... "type": "module", ... }// Exemplo ES6 módulo exportar classe MinhaClasse { construtor() { console.log("es6"); } } // Equivalente ao módulo CommonJS module.exports = class MinhaClasse { construtor() { console.log("commonJs"); } };
Utilize TypeScript e ts-node:
Considere usar TypeScript junto com os pacotes npm ts-node ou ts-node-dev. O TypeScript transpila para JavaScript em tempo de compilação, tornando o código ES6 compatível com versões mais antigas do NodeJS.{ ... "type": "module", ... }
Transpile ESM para CommonJS:
Use esbuild (instalado via npm) para transpilar seu ES6 JavaScript para o formato CommonJS, permitindo que ele seja executado em ambientes sem suporte nativo de ESM.Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3