[트러블 슈팅] JS → TS 마이그레이션 과정에서 절대 경로 및 Barrel 패턴 이슈

2026. 2. 9. 09:50·react

🎯 문제 상황

포트폴리오 프로젝트를 JavaScript에서 TypeScript로 마이그레이션하는 과정 문제 발생

- 상대 경로(../../)를 절대 경로로 변경하기 위해 @ 별칭(alias)을 설정했으나,
import 시 src가 아닌 node_modules를 기준으로 탐색

- tsconfig.json에서 baseUrl, paths 설정을 모두 적용했음에도 불구하고
.jsx 파일에서는 설정이 정상적으로 동작 하지 못함

- index.ts에서 Barrel 패턴(export *)을 활용하려 했으나 TypeScript에서 import가 정상적으로 처리하지 못함


🔍 원인 분석

- TypeScript 경로 별칭 설정은 TS 파일(.ts, .tsx) 기준으로만 정확히 적용

- 기존 파일이 .jsx 확장자일 경우, tsconfig.json의 설정이 정상적으로 반영되지 않음

- Barrel 패턴 사용 시, TypeScript는 기본적으로 .ts 확장자를 명시한 import를 허용하지 않음


📃해결방법

1 tsconfig.json 경로 별칭 설정

{
    "compilerOptions": {
        "baseUrl": ".",
        "paths": {
        	"@/*": ["./src/*"]
        }
    }
}

- baseUrl을 프로젝트 루트로 설정

- @/ 입력 시 src 디렉토리를 기준으로 모듈을 탐색하도록 설정


2. index.ts에서 Barrel 패턴 사용 설정

{
    "compilerOptions": {
    "allowImportingTsExtensions": true
    }
}

- index.ts에서 .ts / .tsx 모듈을 확장자 포함하여 import 가능

 

'react' 카테고리의 다른 글

리액트 패턴: asChild로 컴포넌트 태그 유연하게 변경하기  (2) 2025.06.29
React 슬라이더 구현: Swiper 설치, 사용법, 공통 컴포넌트화까지  (2) 2025.06.21
리액트 디자인 패턴: 제어 컴포넌트 vs 비제어 컴포넌트  (0) 2025.06.14
React Responsive로 반응형 구현하는 법: useMediaQuery와 커스텀 훅 실전 예제  (1) 2025.06.07
SVGR로 변환한 SVG 컴포넌트에서 사이즈 조절이 안 될 때 -removeViewBox: false 설정하기  (1) 2025.05.31
'react' 카테고리의 다른 글
  • 리액트 패턴: asChild로 컴포넌트 태그 유연하게 변경하기
  • React 슬라이더 구현: Swiper 설치, 사용법, 공통 컴포넌트화까지
  • 리액트 디자인 패턴: 제어 컴포넌트 vs 비제어 컴포넌트
  • React Responsive로 반응형 구현하는 법: useMediaQuery와 커스텀 훅 실전 예제
기니피그이올시다
기니피그이올시다
은평구 불키보드
  • 기니피그이올시다
    Mhlee Programming
    기니피그이올시다
  • 전체
    오늘
    어제
    • 분류 전체보기
      • html
      • css
      • javascript
      • react
      • design system
      • 기타
      • 책 리뷰
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    useEffect
    컴포넌트
    useState
    CSS
    Prettier
    breadcrumbs
    React
    NextJS
    svgr
    리액트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
기니피그이올시다
[트러블 슈팅] JS → TS 마이그레이션 과정에서 절대 경로 및 Barrel 패턴 이슈
상단으로

티스토리툴바