Não é nada muito complexo, apenas para estudo e ajudar alguém caso necessário.
Para mais informações de como utilizar remote-containers
acesse: remote-container-config
Do mais espero ter ajudado alguém.
Lembrando que não está no melhor design pattern do mundo, mas ajuda em pequenos projetos.
Para iniciar o projeto, copie e cole na raiz do projeto o arquivo .env.example
.
Renomeio para .env
. Altere as variáveis de ambiente conforme necessitar.
Também existe um arquivo .env
dentro da pasta .devcontainer
, copie o conteúdo do .env
da raiz do projeto para dentro deste arquivo, é necessáruio para o docker.
Altere, também, o arquivo initdb.sql
que se encontra dentro da pasta .devcontainer/scripts
.
o mesmo tem essa aparência:
CREATE DATABASE projectdb;
\c projectdb
DROP EXTENSION IF EXISTS "uuid-ossp";
CREATE EXTENSION "uuid-ossp";
Altera onde está escrito projectdb
para o mesmo database que vc colocou nos arquivos .env
.
Provávelmente o VSCODE
deve pedir uma extensão para rodar os containers do node e, nesse caso, do postgres. Instale a extensão para remote-containers
e, com o docker funcionando, deixe o mesmo baixar as imagens e executar os containers.
Caso ocorra um erro na primeira execução, aperte o botão retry
na janela que vai aparecer. Funcionará normalmente.
Com o container rodando você não se entrará no bash de sua máquina, mas sim no do container node criado na inicialização.
Tendo isso em vista, execute em seu terminal integrado do vscode:
yarn
SIM, yarn. Essa instância do node já acompanha yarn
nativamente, se preferir usar npm
, fique a vontade.
Antes de rodar as migrations que existem, execute o seguinte comando no terminal integrado do vscode:
yarn init:ormconfig
Esse comando irá criar o arquivo de configuração do typeorm
baseado no ambiente sendo o padrão development
Agora execute o comando:
yarn typeorm migration:run && yarn seed:run
Para o banco de dados já terminaram as configurações.
Execute o comando:
yarn dev
Este comando executa a aplicação com ts-node-dev
ja com watch e ignorando erros do typescript.
O eslint também está integrado, porém pode ser alterado a vontade.
Do mais eu acredito que, para quem tem uma familiaridade básica com MVC e Node não terá muitos problemas de uso.
Espero ajudar alguém com esse repositório.
Muito Obrigado a todos