피드로 돌아가기
Symfony Asset Mapper: How to Finally Test JavaScript Properly Without the Pain
Dev.toDev.to
Frontend

Symlink 기반 브릿지 설계를 통한 Asset Mapper JS 테스트 환경 구현

Symfony Asset Mapper: How to Finally Test JavaScript Properly Without the Pain

Jozef Môstka2026년 4월 20일4intermediate

Context

Webpack과 npm 기반의 복잡한 빌드 프로세스를 제거한 Symfony Asset Mapper의 Import Map 구조 채택. Node.js 런타임이 importmap.php의 경로 매핑을 인식하지 못해 발생하는 ERR_MODULE_NOT_FOUND 문제로 인한 JS 테스트 불가 상황 발생.

Technical Solution

  • Node.js의 node_modules 의존성 탐색 메커니즘을 활용한 Symlink 브릿지 설계
  • importmap.php 설정을 분석하여 실제 자산 경로를 node_modules 내 가상 패키지로 연결하는 PHP 스크립트 구현
  • 단일 파일 라이브러리의 경우 index.js 및 package.json을 동적 생성하여 Node.js 모듈 규격 준수
  • npm pretest 훅을 통한 테스트 실행 전 자동 링크 갱신 파이프라인 구축
  • 설정 오버헤드 제거를 위해 Node.js 20 버전 이상의 Native Test Runner 채택
  • 프로덕션과 동일한 물리 파일을 참조함으로써 Mocking 없는 실환경 기반 테스트 보장

- Import Map 기반 환경에서 Node.js 도구 활용 시 Symlink를 통한 경로 매핑 검토 - 외부 라이브러리 의존성 중복 제거를 위한 파일 시스템 레벨의 포인터 연결 방식 적용 - 테스트 도구 선정 시 Zero-config 지향을 위한 런타임 내장 기능 우선 고려

원문 읽기