Executando verificação de segurança...
1

TypeScript e produção

Tenho duvidas em TS de como colocar meu projeto em produção, sei que após eu fazer toda parte do desenvolvimento por exemplo usando tsx, eu devo buildar usando tsc, mas após ele criar a pasta dist como esperado pelo OutDir, eu nao sei mais o que fazer, tipo quais arquivos subir para uma hospedagem, se é pra subir o ts ou só a pasta dist, o que configurar, como saber o que enviar e outras duvidas sobre produção que nao entendo

Carregando publicação patrocinada...
2

Depende muito da forma que você quer fazer. Mas acredito que uma forma simple de entender no início é fazer da seguinte forma:

  1. Pegue uma VM no GCP ou AWS (gratuita mesmo)
  2. Instale Apache ou Nginx
  3. Pegue algum tutorial de como configurar um proxy reverso
  4. Clone o seu repositório na pasta var/www
  5. Rode seu comando de build
  6. Instale PM2 para rodar o seu index.js
  7. Aponte o proxy reverso para o processo do PM2
  8. Você agora vai conseguir acessar sua API ou Front pelo seu domínio!

Claro que existem várias dificuldades e configurações no meio (além da alta chance de ter alguns erros aqui e ali), mas essencialmente você consegue fazer o deploy de uma aplicação dessa forma.

Esse modo fica fácil para entender cada etapa do processo, mas não recomendo fazer isso em ambiente de produção.

1

Fiz algo parecido, e cara, é provável que você encontre muitos erros! É uma oportunidade de aprendizado imensa, mas pode ser frustrante de tanta coisa que vai dar errado, cheguei a ficar meses com meu domínio parado levando para um 404 mesmo e dane-se.

1
1

Eu pessoalmente não recomendo usar esses serviços sem tem um entendimento fundamental do que eles fazem por dentro. Você se torna, nas palavras do próprio Felipe Deschamps: "um dev oco, vazio por dentro".

A passagem do iniciante para o intermediário ou avançado é justamente "sujar a mão de terra". Usar esses serviços para facilitar e ajudar você a lançar um serviço sem se preocupar muito é ótimo, mas o que você realmente aprendeu?

Um dev intermediário precisa ir além de lançar uma aplicação em um serviço pronto e realmente buscar aprender mais. Conhecimento em Apache e Nginx são muito importantes para qualquer back-end/full-stack. Até porque empresas, em sua grande maioria, não usam heroku ou similares. Os custos iniciais são baixos, mas sobem rapidamente e não conseguem escalar o suficiente.

Minha recomendação é fazer o difícil mesmo, pois somente fazendo isso você vai cruzar a barreira do iniciante.

1

Depende do que você está falando. É um backend ou um frontend? Está usando algum framework específico?

Pois se for apenas um frontend, você pode usar um AWS S3 para hospedar os arquivos por exemplo e servir em um domínio específico.

1

um nestJS ou somente express com ts, mas tb tenho a dúvida de quando for hospedar vou colocar só a pasta dos arquivos js ou todo projeto?

1

Geralmente, o servidor "observa" o seu projeto que está no github. Quando há um push, ele builda o projeto, pega a pasta "dist" que é o resultado dessa build, e confihura um ngix pra ela, apontando somente para o "dist". Todo esse processo é automático.

Essa é a melhor forma de começar a entender como um servidor de produção funciona. Depois de conseguir fazer o básico, aí pode partir para coisas mais complexas, se esse for seu interesse

1

Depois que vc builda é tudo javascript. Então nao precisa se preocupar com TS a nivel de produção.

Quanto ao nao sei o que fazer, depende do projeto, se for front qualquer servidor web básico vc consegue. Se for back você precia de um servidor node

Dá uma olhada no site render.com, é a melhor forma de você começar a entender! De um modo geral, o render.com (existem outros) irá se conectar no seu projeto pelo github, então cada vez que você fizer um push, o próprio render.com irá buildar o projeto. Ou seja, nao é você que builda o projeto e sobe os arquivos, é o servidor.

Quando você cria o projeto no render.com, tem uma parte que você seleciona qual o comando para buildar o projeto e qual o comando para iniciar:

A partir dali, seu projeto estará configurado