Vite의 HMR (Hot Module Replacement) 기능은 특히 파일 가져 오기에서 오타 및 사례 민감도 문제의 영향을받는 것으로 알려져 있습니다. 다음은 이러한 문제에 대한 주요 요점입니다.
사례 민감도 문제
1. 다른 운영 체제의 사례 민감도 : Vite는 가져 오기 파일 이름의 경우 실제 파일 이름과 일치하지 않을 때 Case Insensentitive 파일 시스템 (Windows 및 MacOS와 같은)에서 HMR에 문제가 발생할 수 있습니다. 예를 들어, 파일의 이름이`myComponent.Vue`라는 이름이 있다면`myComponent.Vue '로 가져 오면 문제가 발생합니다. 이로 인해 Vite가 변화를 감지하지 못하여 개발 중에 예상치 못한 행동으로 이어질 수 있습니다 [1].
2. 사용자 경험 : 몇몇 사용자는 궁극적으로 파일 이름의 잘못된 케이싱으로 거슬러 올라가는 HMR 문제를 해결하는 데 상당한 시간을 소비했다고보고했습니다. 예를 들어, 한 사용자는 파일 이름의 단일 문자로 인해 하루 종일 버그를 고치려고 낭비했다고 언급했습니다 [1]. 다른 사용자는 RECT 프로젝트를 수행 할 때 비슷한 문제에 직면했으며, 이것이 일반적인 함정임을 나타냅니다 [1].
오타 및 가져 오기 경로
1. 절대 대 상대 수입 : Vite는 상대 경로와 비교하여 절대 경로를 사용하여 수입 된 구성 요소의 변화를 감지하는 데 어려움이있는 것으로 나타났습니다. 사용자는 상대 수입으로 전환하면 HMR 탐지 문제가 해결된다는 것을 발견했습니다 [4]. 이는 잘못된 케이싱 또는 잘못된 경로 사양으로 인해 경로의 오타가 예상대로 작동하지 않을 수 있음을 시사합니다.
2. 디버깅 팁 : HMR 문제가 발생할 때 오타 및 케이스 감도에 대한 가져 오기 경로를 다시 확인하는 것이 좋습니다. 가져 오기 명령문이 파일 이름과 정확히 일치하는지 확인하면 이러한 일반적인 함정을 피할 수 있습니다.
결론
요약하면, Vite의 HMR은 파일 가져 오기의 오타 및 사례 민감도 문제에 의해 크게 영향을받을 수 있습니다. 개발자는 부드러운 HMR 기능을 보장하기 위해 파일 이름의 정확한 케이싱과 가져 오기 경로의 정확성에 대해 경계해야합니다. 이것은 MacOS와 Windows와 같이 사례 감도가 다른 환경에서 특히 중요합니다.
인용 :[1] https://github.com/vitejs/vite/issues/964
[2] https://forum.rescript-lang.org/t/vite-react-no-hmr-page-reloads-on-every-change/4700
[3] https://blog.logrocket.com/vite-adoption-guide/
[4] https://stackoverflow.com/questions/73313176/vite-hmr-doesnt-detect-whanges-to-components-nest-nest-sub-folders
[5] https://stackoverflow.com/questions/tagged/hmr