[parcel] Failed to resolve에러 해결 (typescript)

·2022년 9월 25일
0

개발 기록

목록 보기
28/68

코드에서는 에러가 잡히지 않는데 브라우저에서 렌더링이 되지 않고 오류가 났다.

eslint에서도 그랬고 여러 라이브러리에서 resolver 관련 에러가 발생하는 걸 보니 자주 사용되는 단어인 것 같아서 찾아봤다.

딱 한국어로 이거다!라고는 안 나오는데,

만나본 오류도 그렇고 구글에 검색 결과를 보니 변환기, 해석기 그런 뉘앙스인 것 같다.

자동 완성으로 타이핑을 했는데도 오류 나는 걸 보니 경로를 못 읽거나 그런 것 같은데 아마 타입스크립트라서 뭔가 더 필요한가 보다고 생각했다.

parcel-resolver-ts-base-url

parcel-resolver-ts-base-url를 사용해서 해결했다.
선택한 이유는 위클리 다운로드 수가 가장 많았다.
(가장 위에 있던데 npm 사이트는 다운로드 순으로 자동 정렬돼서 출력되나??)

npm install을 하고 루트에 .parcelrc 파일을 작성해 주면 된다.

{
  "extends": "@parcel/config-default",
  "resolvers": ["parcel-resolver-ts-base-url", "..."]
}

parcel-resolver-ts-base-urlnpm 사이트에 들어가 보면 설명이 있는데,

parcel에서는 tsconfig.json의 baseUrl과 paths 속성으로 설정한 경로는 import 하는 기능을 제공하지 않는다고 한다.

At the moment parcel doesn't provide a way to specify tsconfig.json location I know of. parcel-resolver-ts-base-url will use tsconfig.json from the project root.

tsconfig.json의 위치를 특정하지 않는다는 것 보니 읽을 생각도 안 하나보다.

근데 이걸 어떻게 가능하게 했나 궁금해서 저장소를 구경 해봤다.

parcel은 tsconfig.json을 안 읽으니까 직접 읽어서 경로를 맞춰주나 보다. 경로 찾아주는 부분은 사실 이해 안 간다. 파일도 그렇게 많지 않던데 안된다고 직접 만드는 거 멋있다...

참고자료

[npm] parcel-resolver-ts-base-url
플러그인 만든 사람이 플러그인 설명하는 글

0개의 댓글