NEXT.js

Next.js 'use client' 에러 고치는방법

잼굴 2023. 4. 25. 23:41

 

 

Next.js를 사용한다면  클라이언트 컴포넌트와 서버 컴포넌트를 분리해서 컴포넌트를 생성한다.

 

Next.js에서 클라이언트 컴포넌트를 사용하기위해서는 코드 최상단에 'use client'를 작성해두면되고, 이후에는 다양한 함수들을 사용할수있게 된다.

 

그런데 !!!!!

 

 

 'use client'를 사용하면

error - SyntaxError: Unexpected token u in JSON at position 0

at JSON.parse (<anonymous>)

뭐 이런 에러가 자꾸 뜬다.. 공식문서에서 해보라는 대로해도 똑같고 뭐 자꾸 JSON.parse 파싱에러가 자꾸뜬다...

 

그렇다고 use client를 안쓰면 

 1 | // 'use client';
 2 | import { useState } from 'react'
   :          ^^^^^^^^
 3 | 
 4 | export default function Counter() {
 4 |     const [count, setCount] = useState(0);
   `----

클라이언트 컴포넌트 선언이 안됐을때 뜨는 오류가 뜬다..

 

 

 

아 모르겟고...

 

해 결 법

결론: 

node_modules\next\dist\build\webpack\loaders\next-flight-loader\index.js 파일에서

const proxy = createProxy("${this.resourcePath}")


const proxy = createProxy(String.raw\`${this.resourcePath}\`)

첫줄로 되어있는걸  밑에
const proxy = createProxy(String.raw\`${this.resourcePath}\`) 

 

이걸로 변경해주면 된다..

 

 

 

 

에러뜨는 이유

 

뭐 찾아보니까 13.3.0버전에서만 일어나는듯?

윈도우 환경에서  path 경로를 읽을때 백슬래시랑 문자열 이스케이프 과정에서 오류가 발생한단다...

 

 

모르겠고 그냥 저 경로에 저 코드만 변경해주면 잘 작동됨 수고링~

 

'NEXT.js' 카테고리의 다른 글

NEXT.js의 라우팅에 대해.araboja  (0) 2023.04.16
NEXT.js는 CSR임? SSR임?  (0) 2023.04.16
Next.js 기본 폴더구조와 역할  (0) 2023.04.12