Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- html
- 알고리즘스터디
- 프로그래머스 코딩테스트
- 정보처리기사
- Redux-Toolkit
- 알고리즘문제
- 코딩
- 자바스크립트
- js
- 프로그래밍
- 코테공부
- 코딩테스트
- 1일1코테
- 개발자
- 프로그래머스 Lv.0
- 프로그래머스알고리즘
- 코테준비
- next.js
- next.js 에러
- mysql
- 프로그래머스코딩테스트
- 코테스터디
- CSS
- 프로그래머스 코테
- 프로그래머스코테
- 프로그래머스 레벨0
- 알고리즘공부
- 프로그래머스
- 프로그래머스 알고리즘
- 정처기기출
Archives
- Today
- Total
계발하는 개발자
[빌드 에러] 빌드시 kakao is not defined 에러뜨는 문제 해결 본문
참고
에러
프로젝트 빌드 파일에서 아래같은 kakao is not defined 에러가 났다.
이전에 kakao map api 연동하려고 했을 때에도 동일한 에러가 났었는데, 이번엔 빌드하려고 했을 때 이 에러가 또 발생한 거다.
원인
이유는 "kakao" 변수가 웹페이지의 스크립트에서 정의되는 글로벌 변수이자, 외부 스크립트를 통해 제공됨에도 해당 스크립트를 페이지에 로드하지 않고(index.html) 사용할 특정 컴포넌트 파일에서만 참조하게끔 해서 였다... !
(그러고보면 애시당초 kakao map 가이드문서에도 index.html 파일에 kakao SDK 추가하라고 하긴 했던 것 같다.)
암튼 컴포넌트 mounted hook에서 kakao SDK를 로드했어도 컴포넌트 초기화 과정에서 의존성
문제로 스크립트를 못 찾아서 에러를 뿝는 듯하다ㅠ
해결
index.html <head> 태그 안에 다음의 SDK 삽입해주고 (반드시 상단에 로드해야한다!)
<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey={APP_KEY}&libraries=services"></script>
index.html에 삽입한 지도 API를 호출하기 위해 컴포넌트 파일 상단에 /*global kakao*/ 주석을 추가해줬다.
나는 mounted hook에서 API를 호출하고 있으므로 아래 같이 해줬다.
mounted() {
/* global kakao */
또는 kakao 앞에 window를 붙여주는 방법도 있다.
mapOption = {
center: new window.kakao.maps.LatLng(lat, lng), // 지도의 중심좌표
level: 3, // 지도의 확대 레벨
disableDoubleClickZoom: true, // 두번 클릭시 확대 기능 막기
};
// 지도 생성
const map = new window.kakao.maps.Map(mapContainer, mapOption);
//인포윈도우 표시 위치
const iwPosition = new window.kakao.maps.LatLng(lat, lng);
이런식으로.
이렇게 해주면 에러가 깔끔하게 해결된다.
LIST
'❗️Error' 카테고리의 다른 글
dev_genie
@dev_genie
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!