Como fazer o Node.js reconhecer imports ES6 sem usar require?
Por padrão, o Node.js utiliza CommonJS (require
e module.exports
) para manipulação de módulos. No entanto, se deseja utilizar a sintaxe moderna de ES Modules (import/export
), é necessário realizar algumas configurações.
Habilitando ES Modules no Node.js
Opção 1: Adicionar "type": "module" no package.json
A maneira mais simples de ativar ES Modules no Node.js é adicionar a seguinte configuração ao package.json
:
{
"type": "module"
}
Com isso, será possível utilizar import
e export
sem precisar do require
.
Opção 2: Usar arquivos com extensão .mjs
Outra alternativa é renomear seus arquivos para .mjs
, pois o Node.js reconhece essa extensão como ES Modules.
Exemplo:
// math.mjs
export function somar(a, b) {
return a + b;
}
E para importar em outro arquivo:
// app.mjs
import { somar } from './math.mjs';
console.log(somar(5, 3));
Importando pacotes npm com ES Modules
Se estiver utilizando pacotes npm, é necessário importar corretamente:
import express from 'express';
const app = express();
Certifique-se de que o pacote suporta ES Modules. Caso contrário, será necessário utilizar require
ou procurar uma alternativa compatível.
Diferenças entre ES Modules e CommonJS
Característica | CommonJS (require ) |
ES Modules (import/export ) |
---|---|---|
Sintaxe de importação | require |
import |
Sintaxe de exportação | module.exports |
export |
Tipo de carregamento | Síncrono | Assíncrono |
Suporte no Node.js | Padrão | Requer configuração |
Conclusão
O uso de import/export
no Node.js oferece uma sintaxe mais moderna e alinhada com o JavaScript. Para habilitar ES Modules, basta adicionar "type": "module"
no package.json
ou utilizar a extensão .mjs
. Essa abordagem torna o código mais compatível com navegadores e frameworks modernos.
Por que ES Modules estão se tornando o padrão no Node.js?
A adoção dos ES Modules no Node.js foi uma grande mudança para desenvolvedores que estavam acostumados com o require
. Durante anos, o CommonJS foi o padrão, mas conforme o JavaScript evoluiu, a necessidade de unificar os módulos entre backend e frontend se tornou evidente.
Hoje, frameworks modernos como Next.js e NestJS já utilizam ES Modules por padrão. Com isso, aprender a configurar e utilizar import/export
no Node.js é essencial para acompanhar as tendências do desenvolvimento web.
Mesmo que o suporte ao CommonJS continue no Node.js, a tendência é que ES Modules se tornem o padrão definitivo no futuro, devido à sua compatibilidade e eficiência.
Algumas aplicações:
- Criação de APIs modernas compatíveis com JavaScript
- Melhor organização e modularização de código
- Integração mais fácil com frameworks modernos
- Uso consistente de módulos entre frontend e backend
- Melhoria na performance em grandes aplicações
Dicas para quem está começando
- Adicione
"type": "module"
nopackage.json
para habilitar ES Modules. - Se precisar manter CommonJS e ES Modules, crie arquivos
.cjs
e.mjs
separados. - Use sempre extensões
.js
ou.mjs
corretamente para evitar erros. - Antes de usar
import/export
, verifique se os pacotes npm suportam ES Modules. - Se precisar importar dinamicamente, utilize
import()
dentro de funções assíncronas.
Contribuições de Tatiane Souza