1
resposta

[Reclamação] Segui sugestões do fórum e ainda assim não funciona.

Error during migration run: Error: Unable to open file: "C:\Users\pedro\OneDrive\Documentos\GitHub\api-estudo-nest-jwt-guards-logs\src\db\data-source-cli.ts". Cannot use import statement outside a module at Function.loadDataSource (C:\Users\pedro\OneDrive\Documentos\GitHub\api-estudo-nest-jwt-guards-logs\node_modules\src\commands\CommandUtils.ts:22:19) at async Object.handler (C:\Users\pedro\OneDrive\Documentos\GitHub\api-estudo-nest-jwt-guards-logs\node_modules\src\commands\MigrationRunCommand.ts:42:26) PS C:\Users\pedro\OneDrive\Documentos\GitHub\api-estudo-nest-jwt-guards-logs>

Nada já sugerido neste fórum resolveu meu problema, ja tentei os ajustes no tsconfig e no package.json.

1 resposta

O erro Cannot use import statement outside a module no TypeScript geralmente ocorre quando você tenta usar a sintaxe import em um ambiente que não foi configurado para usar módulos ES (ECMAScript). Aqui estão algumas etapas que você pode seguir para resolver esse problema:

  1. Atualizar tsconfig.json Certifique-se de que seu tsconfig.json está configurado para usar módulos ES. Você pode fazer isso ajustando a propriedade module para ESNext ou ES6:
{
  "compilerOptions": {
    "module": "ESNext",
    "target": "ES6",
    // outras opções...
  }
}
  1. Atualizar package.json Garanta que seu package.json inclua "type": "module" para indicar que você está usando módulos ES:

{
  "type": "module"
}
  1. Verificar Extensões de Arquivo Se você estiver usando a extensão .ts, ela deve funcionar corretamente com as configurações acima. No entanto, se você tiver arquivos .js, considere renomeá-los para .mjs se não quiser alterar as configurações de package.json.

Exemplo de Configuração Completa Atualizar package.json:

{
  "name": "meu-projeto",
  "version": "1.0.0",
  "type": "module",
  "scripts": {
    "start": "node dist/index.js"
  }
}

Atualizar tsconfig.json:

{
  "compilerOptions": {
    "module": "ESNext",
    "target": "ES6",
    "outDir": "./dist",
    "rootDir": "./src",
    // outras opções...
  },
  "include": ["src/**/*"]
}

Estrutura de Arquivos:

  • src/index.ts
  • src/myModule.ts

Código de Exemplo:

// src/myModule.ts
export function myFunction() {
  console.log("Hello from myModule!");
}

// src/index.ts
import { myFunction } from './myModule.js';

myFunction();

Compilar e Rodar

Compile seu projeto com tsc (TypeScript Compiler) e execute o código:

bash
tsc
npm start