오랜만에 vue 프로젝트에서 겪은 트러블 슈팅 기록..
너무 간단하면서도 이런곳에서 오류가 발생할지 몰랐던
나를 위해 기록한다..
웹 컴포넌트를 만들었고, 이 컴포넌트를 vue에서 사용하기 위한 시도를 했다.
<SuitabilityModule>
태그로 작성한 부분이 로컬에서는 정상 작동 했으나,
amplify로 배포 후 화면이 아예 안 뜨는 오류가 발생했다.
그러나 콘솔에 에러는 뜨지 않았고,
해당 부분뿐만이 아닌 페이지 전체가 화면에 나타나지 않았다.
로컬에서는 잘 되면서 배포하고 안 될때가
참..^^ 가장 어이없어지는 것 같다.
약간 내 프로젝트가 문제 없었던 척 내숭떨었던 고런 느낌.. ㅋㅋㅋㅋ ㅠㅠ
🚨 PascalCase가 아닌 kebab-case로 작성해야한다!
💡 배포 시에는 브라우저가 직접 HTML을 파싱하는데,
이때는 <suitabilitymodule>
로 인식되고,
vue가 이를 컴포넌트로 매핑하지 못하면 작동하지 않는다.
<MyComponent>
→ <mycomponent>
결국은 my-component를 못찾는것!
웹 컴포넌트는 customElements.define(tagName, class) 로 DOM 에 직접 등록되므로,
정확히 그 태그명과 일치해야 한다.
사실 웹 컴포넌트를 만들 때 suitability-module로 만들었기 때문에 당연한거였지만,
습관으로 나도 모르게 PascalCase로 작성했던 것 같다..
근데 로컬에서 문제가 없었기에 또 알아차리지 못했던..
그런데 로컬환경에서와 배포했을 때 명명규칙 차이로 큰 오류가 발생할 줄 몰랐고
실수로 인해 해당부분에 대해 알게되어 오히려 좋았다..!