-
Notifications
You must be signed in to change notification settings - Fork 0
트러블슈팅
아래와 같이 styled
모듈을 불러올 때 자동완성이 되지 않는 문제가 있었습니다. 또한 파일을 불러오는 경로가 types/index.d.ts
가 아닌 dist/emotion-styled.cjs.js
경로였습니다.
// @ emotion/styled/dist/emotion-styled.cjs.js 를 가리키는 상태 + 자동 완성이 안됨
import styled from '@emotion/styled`;
- tsconfig 파일 수정
자바스크립트 파일에선 자동으로 import 가 되고 tsx
ts
파일에서만 해당 문제가 있다는 것을 알았습니다. 따라서 tsconfig 에 문제가 있다고 판단하였습니다.
tsconfig
파일의 다음 프로퍼티를 수정해줌으로써 자동 import 문제를 해결했습니다.
"compilerOptions": {
"moduleResolution": "node", // "bundler" -> "node" 로 수정
}
- moduleResolution?
moduleResolution
프로퍼티는 컴파일러가 모듈을 불러올 때 (import) 어떤 모듈을 가져와 해석하는지를 지정합니다. Vite JS 를 프로젝트에 사용하며 자동으로 bundler
가 지정되어 있었습니다. 이는 번들러에 맞게 유연하게 모듈 해상도를 변경하는 것을 의미합니다. 이를 node
로 바꾸게 되면 Node.js 환경에서 모듈을 해석하는 방식으로 바뀌게 됩니다.
모듈 로드 시 package.json
에 main
타입이 지정되어 있다면 해당 파일을 불러옵니다. @emotion/styled 의 package.json
프로퍼티는 다음과 같습니다.
"main": "dist/emotion-styled.cjs.js",
"module": "dist/emotion-styled.esm.js",
"types": "types/index.d.ts",
-
bundler
값을 설정하여 번들러 환경에서 모듈을 로드할 때 Common JS 모듈 형식을 사용합니다. 따라서dist/emotion-styled.cjs.js
파일을 불러옵니다. -
node
값을 설정하여 Node.js 환경에서 모듈을 로드할 땐 ES Module 형식을 사용합니다. 이 경우 main 필드가 따로 Common JS 를 가리키더라도 TypeScript 는types
필드에 지정된 파일을 사용하여 ES Module 을 해석하고 타입을 추가해야하기 때문에types/index.d.ts
로 부터 모듈을 해석하게 됩니다.
MbtiButton 이란 파일 이름을 MBTIButton으로 변경했을 때 git에는 파일 이름 변경이 적용되지 않는 문제가 있었습니다.
이는 GIT은 대소문자를 구별하지 않는 기본 옵션 때문에 파일이름을 대소문자만 변경 했을 경우 인식 하지 못해 변경으로 생각하지 않기 때문에 발생하는 문제로 해결 방법은 아래와 같습니다.
- 방법 1
git mv {oldFileName} {newFileName}
명령어로 이름을 변경한다.
- 방법 2
git config core.ignorecase false
명령어 입력
다음 세 방법으로 우선 해결해보세요!
- npm 지우고 재설치
- package.json 지우고 재설치
- VSCode 껐다 켜기
- height 이 혹시
100%
로 표시되어 있나요? 이 경우 부모 속성의height
값이 설정되어 있지 않으면 지도가 나타나지 않아요!
- 파일 이름을 변경하면서 기존 파일을 참조하는 다른 파일에서 경로를 찾지 못해 발생하곤 했어요.