Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

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!