문제점 및 해결책 개요
Rails 앱 개발 시 esbuild 빌드 오류는 터미널에만 표시되어 개발자가 문제를 놓치기 쉽습니다. 이를 해결하기 위해 오류를 파일에 기록하고, Rails before_action
을 통해 브라우저에 직접 렌더링하는 시스템을 구축했습니다.
구현 단계
.gitignore
설정:esbuild_error_*.txt
파일을 Git 추적에서 제외합니다.ApplicationController
수정: 개발 환경에서만EsbuildErrorRendering
concern을 포함하도록 설정합니다.ruby class ApplicationController < ActionController::Base include EsbuildErrorRendering if Rails.env.development?
EsbuildErrorRendering
concern 생성:ESBUILD_ERROR
상수로 오류 파일 경로를 정의합니다.before_action :render_esbuild_error
를 등록하여 오류 파일이 존재하고 비어있지 않을 경우(조건render_esbuild_error?
) 브라우저에 오류를 HTML 형식으로 렌더링합니다.
- esbuild 오류 로깅 설정 (
esbuild.config.mjs
):- 사용자 정의
onEndPlugin
을 추가합니다. - 빌드 완료 시 오류가 발생하면, 해당 오류를 포맷하여
esbuild_error_${RAILS_ENV}.txt
파일에 기록합니다. - 오류가 없으면 기존 오류 파일을 비웁니다.
- 사용자 정의
package.json
업데이트:build
스크립트를node esbuild.config.mjs
로 변경하여 사용자 정의 설정을 사용하도록 합니다.
이러한 과정을 통해 esbuild 오류가 발생하면 브라우저에 즉시 표시되어 디버깅 효율성을 크게 높일 수 있습니다. 또한, Rails 앱 템플릿을 통해 이 기능을 손쉽게 적용할 수 있습니다.