Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro ao rodar migration CLI

Estou com o seguindo problema ao executar a CLI:

typeorm-ts-node-esm --dataSource src/db/data-source-cli.ts migration:show
Error during migration show:
Error: Unable to open file: "C:\git\Fullstack\fullstack-app-crud\backend\src\db\data-source-cli.ts". Cannot use import statement outside a module
    at CommandUtils.loadDataSource (C:\Users\Lucas\AppData\Roaming\nvm\v20.9.0\node_modules\typeorm\commands\CommandUtils.js:22:19)     
    at async Object.handler (C:\Users\Lucas\AppData\Roaming\nvm\v20.9.0\node_modules\typeorm\commands\MigrationShowCommand.js:27:26)
2 respostas

Oii, Lucas, tudo bem?

O problema está relacionado ao uso de módulos ES no Node.js. A mensagem Cannot use import statement outside a module diz que o Node tentou executar um arquivo que utiliza a sintaxe de importação de módulos ES6, mas não está configurado para reconhecer esse tipo de módulo.

Você pode garantir que seu projeto esteja configurado para usar os módulos. Há duas maneiras:

  • Modificar o arquivo package.json: adicione a propriedade "type": "module" está presente no seu package.json. Isso informa ao Node que todos os arquivos .js no projeto devem ser tratados como módulos ES6. Ali deve ter uma linha assim:

    {
      "type": "module"
    }
    
  • Usar a extensão .mjs para os arquivos: se você preferir não mudar todos os arquivos para módulos ES, você pode renomear os arquivos específicos que usam a sintaxe de importação para ter a extensão .mjs. Isso dirá ao Node para tratar esses arquivos como módulos ES6.

Se outra dúvida surgir, estamos aqui.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.
solução!

Consegui resolver o erro somente desta forma:

  • alterei o script
"typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js -d src/db/data-source-cli.ts"

e rodei:

yarn typeorm migration:generate src/db/migrations/create-table-new