
코드베이스에서 환경 변수 사용 검증
코드베이스를 스캔하여 모든 환경 변수 참조를 감지합니다. 런타임 오류가 발생하기 전에 누락되거나, 사용되지 않거나, 중복되거나, 잘못 사용된 변수를 조기에 발견하는 데 도움이 됩니다.
SvelteKit, Next.js, Nuxt를 일급으로 지원합니다. 또한 Node.js 및 Vue와 같은 최신 JavaScript/TypeScript 프로젝트와 프레임워크, 또는 안정적인 .env 파일 비교가 필요한 모든 환경에서 잘 작동합니다.
✨ awesome-cli-apps에 소개됨 - 멋진 CLI 애플리케이션의 선별된 목록

→ 스캐너가 확인하는 항목과 작동 방식에 대한 자세한 내용은 기능 문서를 참조하세요.
--init)기본 구성 파일 생성:
dotenv-diff --init
→ 자세한 내용은 구성 문서를 참조하세요.
dotenv-diff를 Git 훅 또는 CI/CD 파이프라인에 쉽게 통합하여 환경 변수 일관성을 강제할 수 있습니다.
→ 자세한 내용은 Git 훅 문서를 참조하세요.
SvelteKit, Next.js, Nuxt 프로젝트에서 dotenv-diff는 프레임워크별 환경 변수 오용을 감지합니다.
▸ Framework issues (SvelteKit)
──────────────────────────────────────────────────────────────────────
PUBLIC_API_URL $env/dynamic/private
variables must not start
with "PUBLIC_"
src/routes/+page.server.ts:3
──────────────────────────────────────────────────────────────────────
→ 자세한 내용은 프레임워크 문서를 참조하세요.
.env.example 작성하기팀의 새 기여자가 이해하기 쉽도록 작성된 .env.example:
# Node environment (development, production, etc.)
# @optional
NODE_ENV=development
# Public API URL is used to call our backend
PUBLIC_API_URL=http://localhost:3000
# Temporary token for the partner API sandbox — ask the integrations team for a new one
# @expire 2027-03-31
PARTNER_API_TOKEN=
→ 더 읽어보기: 좋은 .env.example 작성하기
스캔은 단일 파일과 코드를 비교합니다. 따라서 .env에 추가했지만 .env.example에 잊어버린 키는 새 기여자가 저장소를 클론할 때까지 보이지 않습니다. 드리프트 경고는 바로 이러한 문제를 감지합니다:
▸ Drift between .env and .env.example
──────────────────────────────────────────────────────────────────────
STRIPE_SECRET not documented in .env.example
──────────────────────────────────────────────────────────────────────
기본적으로 활성화되어 있으며, --no-drift-warnings로 비활성화할 수 있습니다.
→ 자세한 내용은 드리프트 경고를 참조하세요.
환경 변수에 만료 메타데이터를 추가하여 만료가 임박했을 때 경고를 받을 수 있습니다. 예를 들어, .env 파일에 다음과 같이 작성합니다:
# @expire 2025-12-31
API_TOKEN=
→ 자세한 내용은 만료 문서를 참조하세요.
코드에 주석을 추가하여 특정 환경 변수 경고를 무시할 수 있습니다. 예를 들어:
const apiKey = process.env.API_KEY; // dotenv-diff-ignore
소스 코드에서 특정 경고가 안전하다는 것을 알고 있을 때 유용합니다.
→ 자세한 내용은 무시 주석 문서를 참조하세요.
--baseline)이미 알려진 경고가 있는 프로젝트에 dotenv-diff를 도입할 때 현재 상태를 기준 파일(baseline file)에 기록합니다. 이후 실행에서는 새로 도입된 문제만 보고합니다:
dotenv-diff --baseline
→ 자세한 내용은 기준 문서를 참조하세요.
--explain)특정 환경 변수를 검사하여 정의된 위치, 코드베이스에서 사용된 위치, 전체 상태를 확인합니다:
dotenv-diff --explain DATABASE_URL
→ 자세한 내용은 --explain 문서를 참조하세요.
여러 앱과 패키지가 있는 모노레포에서 공유 폴더를 포함할 수 있습니다:
{
"scripts": {
"dotenv-diff": "dotenv-diff --example .env.example --include-files '../../packages/**/*' --ignore VITE_MODE"
}
}
→ 자세한 내용은 모노레포 문서를 참조하세요.
이렇게 하면:
0 → 오류 없음1 → 오류 발견 (또는 엄격 모드에서 경고)→ 전체 문서는 dotenv-diff 문서를 참조하세요
이슈와 풀 리퀘스트를 환영합니다.
→ 자세한 내용은 CONTRIBUTING을 참조하세요.
이 프로젝트에 기여해 주신 훌륭한 분들께 감사드립니다:
MIT 라이선스에 따라 라이선스가 부여됩니다.
chrilleweb이(가) 만들었습니다.