
Convalida l'uso delle variabili d'ambiente nel codebase
Analizza il tuo codebase per rilevare ogni riferimento a variabili d'ambiente. Ti aiuta a individuare variabili mancanti, inutilizzate, duplicate o usate in modo errato, prima che causino errori a runtime.
Supporto di prima classe per SvelteKit, Next.js e Nuxt. Funziona bene anche in progetti JavaScript/TypeScript moderni e framework come Node.js e Vue — o in qualsiasi altro setup in cui desideri un confronto affidabile dei file .env.
✨ In evidenza in awesome-cli-apps - Una lista curata di fantastiche applicazioni CLI

→ Consulta la Documentazione sulle Capacità per i dettagli su cosa controlla lo scanner e come funziona.
--init)Genera un file di configurazione predefinito:
dotenv-diff --init
→ Consulta la Documentazione sulla Configurazione per maggiori dettagli.
Integra facilmente dotenv-diff nei tuoi Git hooks o pipeline CI/CD per garantire la coerenza delle variabili d'ambiente.
→ Consulta la Documentazione sui Git Hooks per maggiori dettagli.
Nei progetti SvelteKit, Next.js e Nuxt, dotenv-diff rileva l'uso improprio delle variabili d'ambiente specifiche del framework.
▸ Problemi del framework (SvelteKit)
──────────────────────────────────────────────────────────────────────
PUBLIC_API_URL $env/dynamic/private
le variabili non devono
iniziare con "PUBLIC_"
src/routes/+page.server.ts:3
──────────────────────────────────────────────────────────────────────
→ Consulta la Documentazione sui Framework per maggiori dettagli.
.env.exampleUn .env.example scritto in modo da essere più facile da comprendere per i nuovi contributori del team:
# Ambiente Node (development, production, ecc.)
# @optional
NODE_ENV=development
# L'URL dell'API pubblica viene utilizzato per chiamare il nostro backend
PUBLIC_API_URL=http://localhost:3000
# Token temporaneo per la sandbox dell'API partner — chiedi un nuovo token al team integrazioni
# @expire 2027-03-31
PARTNER_API_TOKEN=
→ Leggi di più: Scrivere un buon .env.example
Una scansione confronta il tuo codice con un singolo file — quindi qualsiasi chiave che aggiungi a .env e dimentichi in .env.example rimane invisibile finché un nuovo contributore non clona il repository. Gli avvisi di deriva individuano esattamente questo:
▸ Deriva tra .env e .env.example
──────────────────────────────────────────────────────────────────────
STRIPE_SECRET non documentata in .env.example
──────────────────────────────────────────────────────────────────────
Attivo per impostazione predefinita; disattivalo con --no-drift-warnings.
→ Consulta Avvisi di Deriva per maggiori dettagli.
Aggiungi metadati di scadenza alle tue variabili d'ambiente per ricevere avvisi quando stanno per scadere. Ad esempio, nel tuo file .env:
# @expire 2025-12-31
API_TOKEN=
→ Consulta la Documentazione sulla Scadenza per maggiori dettagli.
Puoi ignorare avvisi specifici sulle variabili d'ambiente aggiungendo commenti nel tuo codice. Ad esempio:
const apiKey = process.env.API_KEY; // dotenv-diff-ignore
Questo è utile quando sai che un avviso specifico è sicuro nel tuo codice sorgente.
→ Consulta la Documentazione sui Commenti di Ignoramento per maggiori dettagli.
--baseline)Adotta dotenv-diff in progetti che hanno già avvisi noti registrando lo stato attuale in un file baseline. Le esecuzioni future segnaleranno solo i problemi di nuova introduzione:
dotenv-diff --baseline
→ Consulta la Documentazione sulla Baseline per maggiori dettagli.
--explain)Ispeziona una specifica variabile d'ambiente per vedere dove è definita, dove viene utilizzata nel codebase e il suo stato complessivo:
dotenv-diff --explain DATABASE_URL
→ Consulta la Documentazione su --explain per maggiori dettagli.
Nei monorepo con più app e pacchetti, puoi includere cartelle condivise:
{
"scripts": {
"dotenv-diff": "dotenv-diff --example .env.example --include-files '../../packages/**/*' --ignore VITE_MODE"
}
}
→ Consulta la Documentazione sul Monorepo per maggiori dettagli.
Questo:
0 → Nessun errore1 → Errori trovati (o avvisi in modalità strict)→ Consulta la Documentazione di dotenv-diff per la documentazione completa
Issue e pull request sono benvenuti.
→ Consulta CONTRIBUTING per i dettagli.
Grazie a queste fantastiche persone per aver contribuito a questo progetto:
Concesso in licenza sotto la licenza MIT.
Creato da chrilleweb