@tabnews/config v0.4.2
TabNews Config
Essa versão beta só implementa o comando
tn test. Ainda não possui os demais comandos.
Ferramenta para configurar um ambiente de desenvolvimento e testes com as mesmas configurações utilizadas no TabNews, incluindo:
- CLI do TabNews
- Variáveis de ambiente com dotenv-expand
- Test Runner Vitest
- Linter ESLint
- Formatador de código Prettier
- Contêineres Docker- Banco de dados PostgreSQL
- Servidor de email MailCatcher
 
Requisitos
Instalação
Para adicionar ao projeto, execute o comando:
npm i -D @tabnews/configPara utilizar a CLI, instale globalmente com o comando:
npm i -g @tabnews/configUtilização
Scripts NPM
Adicione scripts no package.json do projeto, por exemplo:
{
  "scripts": {
    "dev": "tn --seed",
    "build": "tn build --seed",
    "start": "tn start",
    "test": "tn test run",
    "test:watch": "tn test"
  }
}CLI
Para iniciar os serviços utilizando as variáveis de ambiente de desenvolvimento, execute o seguinte comando (lembre-se de instalar globalmente a CLI ou usar npx):
tnTodos os demais comandos podem ser consultados com:
tn --helpAlguns comandos possuem subcomandos, que também podem ser consultados através da CLI, por exemplo:
tn migration -hVariáveis de ambiente
Aceita arquivos de variáveis de ambiente da mesma forma que o Next.js. A exceção é a variável NEXT_PUBLIC_WEBSERVER_PORT no lugar da PORT. Ela permite definir a porta utilizada pelo servidor Next.js local.
De acordo com o comando em execução, as variáveis de ambiente correspondentes serão carregadas a partir dos seguintes arquivos, se existirem:
- Sempre carregadas: - .env(variáveis padrão)
- .env.local(variáveis locais)
 
- Carregadas de acordo com o comando em execução: - .env.development(variáveis de desenvolvimento)
- .env.development.local(variáveis de desenvolvimento locais)
- .env.test(variáveis de teste)
- .env.test.local(variáveis de teste locais)
- .env.production(variáveis de produção)
- .env.production.local(variáveis de produção locais)
 
A CLI aceita o parâmetro --env-mode (ou -e) para especificar um ambiente diferente do padrão para o comando, por exemplo, para subir o servidor de desenvolvimento com variáveis de ambiente de teste, mas sem executar os testes, execute:
tn --env-mode testAceita as variáveis de ambiente do Docker Compose, das quais podemos destacar:
- COMPOSE_PROJECT_NAME: que permite isolar contêineres de diferentes projetos, mesmo usando o mesmo arquivo- compose.ymlpadrão do TabNews. É útil também para isolar dados de testes automatizados e demais ambientes de desenvolvimento. Também possibilita executar diferentes projetos em paralelo, desde que não existam outros conflitos, como as portas expostas.
- COMPOSE_FILE: Permite usar outro arquivo- compose.ymlcaso precise testar ou desenvolver algo com uma configuração mais específica.
Exemplo de variáveis utilizadas no TabNews
POSTGRES_USER=user
POSTGRES_PASSWORD=password
POSTGRES_DB=tabnews
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
NEXT_PUBLIC_WEBSERVER_HOST=localhost
NEXT_PUBLIC_WEBSERVER_PORT=3000
EMAIL_SMTP_HOST=localhost
EMAIL_SMTP_PORT=1025
EMAIL_HTTP_HOST=localhost
EMAIL_HTTP_PORT=1080Caso defina as variáveis POSTGRES_USER, POSTGRES_PASSWORD e POSTGRES_DB com valores diferentes em cada arquivo, é recomendado também especificar um COMPOSE_PROJECT_NAME diferente. Caso contrário, será necessário remover o contêiner e o volume para recriar o Postgres com os novos valores sempre que trocar de ambiente.
7 months ago
6 months ago
7 months ago
7 months ago
6 months ago
6 months ago
8 months ago
9 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago