fix: README 백엔드 설정 안내가 무효(죽은 config 모듈) — 실제 동작 변수로 정정 + CRA 잔재 제거 - #130
Conversation
|
표준프레임워크에 대한 지속적인 참여에 검토 결과 병합에 있어 방향성 자체는 올바르다고 판단됩니다. 죽은 모듈 삭제와 CRA 잔재 정리는 그대로 반영하면 되고,
해당 내용은 다음 공식 문서에서도 확인 가능합니다.
그런데 README 와 해당 부분의 수정이 확인되면 병합을 진행하도록 하겠습니다. |
|
정확한 지적 감사합니다. 말씀대로 문서를 되돌리기보다, 안내가 실제로 동작하도록 import { defineConfig, loadEnv } from "vite";
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd(), "");
return {
// ...
server: { proxy: { "/api": { target: env.VITE_APP_API_PROXY_TARGET || "http://localhost:8080", ... } } },
};
});검증 (Node 20):
이제 README· |
|
표준프레임워크에 대한 지속적인 참여에 |
수정 사유 Reason for modification
문제 (재현)
README "2. 백엔드 프로젝트 설정" 절 — 신규 개발자가 가장 먼저 따라 하는 절 — 은
.env.development의VITE_APP_EGOV_CONTEXT_URL에 백엔드 URL을 설정하라고 안내합니다. 그런데 이 변수는 아무 효과가 없습니다.이 변수를 읽는 유일한 파일
src/config/index.js가 죽은 코드이기 때문입니다.src/config.js(파일)와src/config/index.js(디렉터리)가 같은 4개 export를 동시에 정의하고 있고, Vite의 모듈 해석이 파일을 우선하므로src/config.js만 로드됩니다.실증 1 — vitest 프로브로 어느 모듈이 로드되는지 확인:
실증 2 — README대로 설정된 상태(
VITE_APP_EGOV_CONTEXT_URL=localhost:8080)로 개발 모드 빌드 후 번들 검사:번들에
localhost:8080이 전혀 없습니다. README 안내와 실제 동작이 불일치하고, README 자신도 뒤쪽 "컨테이너 배포" 절에서는src/config.js·VITE_APP_API_BASE_URL을 올바르게 설명해 문서 안에서 앞뒤가 모순됩니다.부수 위험: 죽은
config/index.js는"http://"를 하드코딩하고 있어, 향후 누가@/config/index로 직접 import하면 HTTPS 배포가 깨집니다.수정 내용
src/config/index.js삭제 — 명시적 import 0건, 로드되지 않음을 실증VITE_APP_API_PROXY_TARGET(vite.config.js의 프록시 대상, 기존에 미문서화 상태였음)VITE_APP_API_BASE_URLpackage.json의"proxy"필드 (CRA 전용 — 실제 프록시는 vite.config.js에 있음).env.*의NODE_PATH,GENERATE_SOURCEMAP(CRA 전용),VITE_EGOV_CONTEXT_URL(_APP누락 오타로 아무도 읽지 않음)검증
수정 후 전체 실행 (Node 20 / npm ci):
"proxy"는 의존성 필드가 아니라 lock에 무관)영향