예제
KO

환경 변수

Hwaro는 config.toml과 템플릿 양쪽에서 환경 변수 치환을 지원합니다. CI/CD 파이프라인, 시크릿 관리, 개발자별 설정 같은 동적 구성이 가능합니다.

설정 치환

config.toml의 환경 변수는 TOML 파싱 전에 해석됩니다.

문법

패턴 설명
${VAR} VAR의 값으로 치환
$VAR 동일(축약형)
${VAR:-default} VAR가 없거나 비어 있으면 default 사용

예시

# CI/CD용 동적 base URL
base_url = "${SITE_URL:-https://localhost:1313}"

# 축약형
title = "$SITE_TITLE"

# 기본값
description = "${SITE_DESC:-My awesome site}"

[og]
fb_app_id = "${FB_APP_ID:-}"

기본값이 없는 미설정 변수는 그대로 남고 빌드 시 경고가 출력됩니다.

WARN: Environment variable 'SITE_URL' is not set (referenced in config.toml)

템플릿 함수

템플릿 안에서 환경 변수를 읽으려면 env() 함수를 사용합니다.

{{ env("ANALYTICS_ID") }}
{{ env("API_KEY", default="none") }}
파라미터 타입 설명
name String 변수 이름
default String? 미설정 시 대체값(선택)

변수가 설정되어 있지 않고 기본값도 없으면 빈 문자열이 반환되고 경고가 기록됩니다.

예시

조건부 애널리틱스 스니펫:

{% if env("GA_ID") %}
<script async src="https://www.googletagmanager.com/gtag/js?id={{ env("GA_ID") }}"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', '{{ env("GA_ID") }}');
</script>
{% endif %}

대체값이 있는 API 엔드포인트:

<script>
  const API_URL = "{{ env("API_URL", default="https://api.example.com") }}";
</script>

활용 사례

CI/CD 파이프라인

배포 환경별로 base URL을 지정합니다.

SITE_URL=https://staging.example.com hwaro build
SITE_URL=https://example.com hwaro build

시크릿 관리

API 키와 트래킹 ID를 버전 관리 바깥에 둡니다.

# config.toml
[og]
fb_app_id = "${FB_APP_ID}"
export FB_APP_ID="123456789"
hwaro build

개발자별 설정

config.toml을 수정하지 않고도 각 개발자가 자기 셸 환경에서 값을 로컬로 재정의할 수 있습니다.

export SITE_URL="http://localhost:1313"
hwaro serve

함께 보기