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

[Bug] Unknown file extension ".ts" -> execução da api

Segui o passo a passo mas está dando esse erro (que é estranho), alguém com o mesmo erro descobriu como resolver ou alguém para me ajudar?

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

10 respostas

Oi!

Esse erro indica que o Node.js não reconhece a extensão de arquivo ".ts" (TypeScript) no arquivo server.ts. Para resolver esse problema, você precisa configurar seu projeto para compilar e executar arquivos TypeScript.

Aqui estão algumas etapas que você pode seguir para solucionar o erro:

  1. Certifique-se de ter o TypeScript instalado globalmente ou localmente em seu projeto. Se você não tiver o TypeScript instalado, você pode fazê-lo com o seguinte comando:
npm install -g typescript

ou localmente com:

npm install typescript --save-dev
  1. Verifique se o seu projeto possui um arquivo tsconfig.json. Se não tiver, você pode criar um na raiz do seu projeto. O tsconfig.json é usado para configurar as opções de compilação TypeScript para o seu projeto. Aqui está um exemplo mínimo:
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "CommonJS",
    "outDir": "./dist",
    "rootDir": "./src"
  },
  "include": ["src/**/*.ts"]
}
  1. Certifique-se de que seu projeto está organizado corretamente. O arquivo server.ts deve estar dentro de um diretório que está incluído na configuração do tsconfig.json.

  2. Compile o seu código TypeScript para JavaScript usando o comando tsc (TypeScript Compiler) a partir da raiz do seu projeto:

tsc

Isso irá gerar os arquivos JavaScript compilados no diretório especificado na opção "outDir" do seu tsconfig.json.

  1. Após a compilação, você deve ser capaz de executar o código JavaScript. Use o Node.js para iniciar seu servidor:
node dist/server.js

Certifique-se de que o arquivo gerado após a compilação tenha a extensão .js e não .ts.

Se você seguir essas etapas e ainda estiver enfrentando problemas, verifique se não há erros na configuração do TypeScript no seu projeto e se o arquivo tsconfig.json está corretamente definido. Certifique-se também de que o TypeScript foi instalado corretamente. Se o problema persistir, forneça mais informações sobre a estrutura do seu projeto e sua configuração para que eu possa oferecer uma ajuda mais específica.

Então, não. funcionou nada! Executando o último comando "node dist/server.js" retornou o erro de não encontrar o módulo, vou te passar a estrutura do projeto com o erro do terminal:

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

Eu estou com o mesmo problema e nao consigo seguir com o curso, por favor alguem poderia me ajudar?

Somente deu certo depois que eu removi a versão atual do Node e instalei a versão 18. Com o node 18 não é necessário alterar nada no projeto, o npm install e npm start irão funcionar.

Obrigado Ricardo! Vou tentar aqui, e assim que eu testar e der certo, marco sua resposta como a solução!

Pessoal, bom dia!

Fizemos algumas alterações na API. Por favor, clonem a API novamente e tentem dar um npm install, vejam se funciona!

Muito obrigada.

Bom dia!

Acabei de tentar aqui e ainda está dando o mesmo erro...

solução!

Boa noite, pessoal! Enfrentei o mesmo problema e depois de algumas pesquisas, consegui resolver o problema fazendo uma modificação no script de inicialização:

Eu alterei o script "start" no package.json:

"start": "ts-node --esm ./src/server.ts",

para:

"start": "node -r ts-node/register ./src/server.ts",

Em resumo, o novo script usa o ts-node de uma maneira mais integrada, ou seja, o -r ts-node/register será usado para compilar e carregar os arquivos TypeScript durante a execução do programa, garantindo a execução do TypeScript no Node.js e evitando os conflitos.

Versão Node.js: v20.8.1 Obs.: Ainda não avancei no curso, mas acredito que com essa alteração não surgirá mais problemas. Caso apareça, compartilho com vocês.

Boa noite Wesley, era isso mesmo o problema! Muito obrigado!

Boa noite pessoal!

Wesley, muito obrigada por ter compartilhado a solução. Augusto, que bom que deu certo.

Com relação a este problema, criamos uma nova atividade no curso mostrando a solução: https://cursos.alura.com.br/course/ios-swiftui-aplicacoes-interativas-crud-apis-rest/task/144964. Assim, novos alunos não terão esse impedimento!

Muito obrigada, novamente, por ter apontado esse impedimento. Sabem como o nodejs é né? kkkkkkkkk

Abraços, pessoal!