1
resposta

[Dúvida] CommonJs para ES6

alguem sabe como mudo esses imports para ES6 para nao dar EXPORT ERROR MODULE ou IMPORT ERROR MODULE, somente trocar para algo que consiga rodar sem um desses dois erros

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

E aí, John!

Então, pra transformar os imports de CommonJS pro esquema de módulos ES6, é só dar um trato na forma como você tá trazendo e mandando embora os módulos no seu código. No CommonJS, a parada é importar com require() e mandar embora com module.exports, mas no ES6 é import pra trazer e export pra mandar embora.

Na figura que você mandou, as importações já tão no esquema ES6, saca só:

import 'dotenv/config';
import { DataSource } from 'typeorm';
import { DataSourceOptions } from 'typeorm';

E a exportação tá na mesma pegada ES6:

export default dataSource;

Se tá dando o erro de EXPORT ERROR MODULE ou IMPORT ERROR MODULE, pode ser que onde você tá rodando ainda não tá suportando a sintaxe ES6 pra módulos. Talvez precise dar um trato no transpilador, tipo o Babel, ou no bundler, tipo o Webpack, pra ele entender direitinho os módulos ES6.

Dá uma olhada no seu package.json pra ver se tem o campo "type": "module", só pra garantir que o Node.js tá usando módulos ES. Ah, e confirma se não tem uma mistura louca de CommonJS e ES6 no mesmo arquivo ou em outros que você tá trazendo, porque isso pode causar uns pepinos.

Se você tá de TypeScript, como parece pelo jeito que tá tipando, confirma no tsconfig.json se tá tudo nos trinques pra compilar pro ES6 ou um módulo que casca com o ambiente.

Aqui vai um exemplo de config pra tsconfig.json que habilita os módulos ES6:

{
  "compilerOptions": {
    "module": "ES6",
    "target": "ES6",
    // outras paradas...
  }
}

Se mesmo depois desses checks o bagulho ainda não resolver, manda mais detalhes sobre onde tá rodando ou a mensagem de erro, que a gente tenta desenrolar isso de uma forma mais certeira.