개인 웹페이지 만들기 프로젝트를
개발 완성하고
build를 해보려구
npm run build를 하자
error가 떴다
에러 내용은
Synchronous scripts should not be used
에러였고
구글링해보니 이는
nextjs는 서버사이드에서 렌더링하는데
화면이 뜨기 전에 script를
불러오려고해서 발생하는 문제였다
해결방법은 2가지가 있는데
1. script뒤에 defer 붙여주기
<script src="https://kit.fontawesome.com/f4ff5f81bc.js" crossOrigin="anonymous" defer/>
이렇게 불러오는 script 뒤에 defer를 붙여주면 된다
2. next.js의 script 사용하기
next.js에서 제공하는 next/script 컴포넌트를
사용하면 된다
<Script
src="https://kit.fontawesome.com/f4ff5f81bc.js"
strategy="beforeInteractive" // or "afterInteractive"
/>
위와 같은 방식으로 사용하면 된다
strategy 속성의 값으로는
beforeInteractive: 페이지가 인터랙티브해지기 전에 스크립트를 로드
afterInteractive: 페이지가 인터랙티브해진 후 스크립트를 로드
lazyOnload: 페이지가 로드된 후 지연 로딩
이렇게 있으니 원하는 옵션을
사용해주면 될 것 같다
두 가지 방법 모두
npm run build를 했을 때
오류가 수정된 것을 확인할 수 있다
'기술 > 웹 개발' 카테고리의 다른 글
[node.js/express/react] 새로운 endpoint로 새로운 화면 띄우기 (1) | 2024.08.29 |
---|---|
[next.js/개인홈페이지] 개인홈페이지 프로젝트 개발 및 배포 완료 (0) | 2024.08.12 |
[typescript/react] component 함수형으로 정의해 파라미터 여러개 넘겨주기 (0) | 2024.08.11 |
[next.js/typescript] bootstrap에서 scrollSpy 적용시키기 (0) | 2024.08.06 |
[typescript] typescript에서 Union Types를 enum처럼 사용하기 (0) | 2024.08.04 |