피드로 돌아가기
Managing Deno Imports in Supabase Edge Functions — deno.json, Version Pinning, Zero Lint
Dev.toDev.to
Backend

deno.json 기반 Version Pinning을 통한 Edge Functions 환경 일관성 확보

Managing Deno Imports in Supabase Edge Functions — deno.json, Version Pinning, Zero Lint

kanta13jp12026년 4월 19일2intermediate

Context

URL 기반 Import 방식을 사용하는 Deno 환경에서 버전 명시 누락으로 인한 런타임 예기치 못한 변경 발생. 다수의 Edge Function에 분산된 종속성 관리로 인해 유지보수 효율성 저하 및 CI 환경과의 불일치 문제 직면.

Technical Solution

  • URL Import에 @vX.Y.Z 형태의 Version Pinning을 적용하여 Major 업데이트로 인한 Breaking Change 원천 차단
  • deno.json의 imports 필드를 활용한 Alias 설정으로 개별 함수 내 하드코딩된 URL 제거 및 중앙 집중형 종속성 관리 구조 구축
  • _shared 디렉토리 내 공통 유틸리티 모듈 설계를 통한 Supabase Client 초기화 로직 중복 제거 및 코드 재사용성 향상
  • deno lint를 CI 파이프라인에 통합하여 no-explicit-any 및 prefer-const 위반 사항을 강제하는 정적 분석 체계 마련
  • 기존 import_map.json 구조를 deno.json 표준 포맷으로 마이그레이션하여 최신 Deno 생태계 호환성 확보

1. 모든 외부 모듈 Import 시 최신 버전(@latest) 대신 특정 버전 명시 여부 확인

2. 프로젝트 루트에 deno.json을 배치하여 Alias 기반의 Import 구조로 전환

3. 공통 인증 로직 및 클라이언트 설정은 _shared 폴더로 모듈화하여 관리

4. 배포 전 deno lint 실행을 통해 타입 안정성 및 코딩 컨벤션 준수 검증

원문 읽기