Configuração de aplicações TypeScript: bibliotecas e abordagens

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Configuração de aplicações TypeScript: visão geral de ferramentas e abordagens



No desenvolvimento moderno com TypeScript, a organização correta da configuração da aplicação é uma das tarefas-chave. A segurança, portabilidade e testabilidade do código dependem de como você gerencia as configurações. Neste artigo, examinaremos as principais bibliotecas e ferramentas para configuração de aplicações TypeScript, suas características e exemplos de uso.



Por que a configuração correta é importante?

A configuração inclui:

  • Variáveis de ambiente (chaves de API, URL do banco de dados)
  • Parâmetros de ambiente (development, staging, production)
  • Configurações de frameworks e bibliotecas
  • Dados secretos (senhas, tokens)

O uso do TypeScript adiciona as vantagens da tipagem estrita, o que permite evitar erros em tempo de compilação. Vamos examinar as melhores ferramentas para trabalhar com configuração.



1. dotenv — ferramenta básica para variáveis de ambiente

A biblioteca dotenv carrega variáveis do arquivo .env para process.env. No TypeScript, ela é frequentemente usada com tipos adicionais.



Instalação

npm install dotenvnpm install -D @types/node   # para tipos do process.env


Exemplo de uso

// .envPORT=3000DATABASE_URL=mongodb://localhost:27017/mydbSECRET_KEY=mysecretkey

// config.tsimport dotenv from 'dotenv';dotenv.config();

interface AppConfig { port: number; databaseUrl: string; secretKey: string;}

export const config: AppConfig = { port: parseInt(process.env.PORT || '3000', 10), databaseUrl: process.env.DATABASE_URL || '', secretKey: process.env.SECRET_KEY || '',};


Prós: simplicidade, leveza, padrão de facto.
Contras: sem validação, todos os valores são strings.



2. config — configuração hierárquica para Node.js

A biblioteca config permite organizar arquivos de configuração por ambientes (default.json, production.json, development.json).



Instalação

npm install confignpm install -D @types/config


Exemplo de estrutura

// config/default.json{    "server": {        "port": 3000    },    "db": {        "host": "localhost",        "port": 27017    }}

// config/production.json{ "server": { "port": 8080 }, "db": { "host": "production-db.example.com" }}

// app.tsimport config from 'config';

interface ServerConfig { port: number;}

const serverConfig = config.get<ServerConfig>('server');console.log(serverConfig.port); // 3000 em dev, 8080 em production


Prós: hierarquia, seleção automática de ambiente, suporte a TypeScript.
Contras: requer sistema de arquivos, não é adequado para serverless.



3. convict — configuração com esquema e validação

convict permite definir um esquema estrito de configuração com tipos, valores padrão e validação.



Instalação

npm install convictnpm install -D @types/convict


Exemplo

import convict from 'convict';

const config = convict({ env: { doc: 'Ambiente da aplicação', format: ['production', 'development', 'test'], default: 'development', env: 'NODE_ENV' }, port: { doc: 'Porta para vincular', format: 'port', default: 3000, env: 'PORT' }, db: { host: { doc: 'Host do banco de dados', format: String, default: 'localhost', env: 'DB_HOST' }, port: { doc: 'Porta do banco de dados', format: 'port', default: 5432, env: 'DB_PORT' } }

Recommendations