@tabnews/config

0.6.0 • Public • Published

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:

Requisitos

Instalação

Para adicionar ao projeto, execute o comando:

npm i -D @tabnews/config

Para utilizar a CLI, instale globalmente com o comando:

npm i -g @tabnews/config

Utilizaçã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):

tn

Todos os demais comandos podem ser consultados com:

tn --help

Alguns comandos possuem subcomandos, que também podem ser consultados através da CLI, por exemplo:

tn migration -h

Variá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 test

Aceita 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.yml padrã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.yml caso 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=1080

Caso 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.

Readme

Keywords

Package Sidebar

Install

npm i @tabnews/config

Weekly Downloads

79

Version

0.6.0

License

MIT

Unpacked Size

19.3 kB

Total Files

13

Last publish

Collaborators

  • aprendendofelipeuser
  • filipedeschamps