피드로 돌아가기
Dev.toFrontend
원문 읽기
Symlink 기반 브릿지 설계를 통한 Asset Mapper JS 테스트 환경 구현
Symfony Asset Mapper: How to Finally Test JavaScript Properly Without the Pain
AI 요약
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 지향을 위한 런타임 내장 기능 우선 고려