expo로 quick start한 이후,
npx expo start
입력했더니
TypeError: Invalid character in header content ["X-React-Native-Project-Root"]
at ServerResponse.setHeader (node:_http_outgoing:655:3)
at C:\Users\바탕 화면\sideProject\learnRN\todoapp\node_modules\@expo\cli\src\start\server\metro\dev-server\createMetroMiddleware.ts:71:9
이라는 오류가 발생했다.
\node_modules\@expo\cli\src\start\server\metro\dev-server\createMetroMiddleware.ts
해당 경로에서 createMetroMiddleware.ts 파일 안에
function createMetroStatusMiddleware(metroConfig) {
return (_req, res)=>{
res.setHeader("X-React-Native-Project-Root", metroConfig.projectRoot);
res.end("packager-status:running");
};
}
metroConfig.projectRoot -> new URL(metroConfig.projectRoot)
new URL( )로 감싸주면 해결.
추가
GPT한테 나중에 물어보니
"이 오류는 HTTP 헤더에 허용되지 않는 문자가 포함되어 발생합니다.
특히 "X-React-Native-Project-Root" 헤더에 경로 문자열이 들어가는데, 윈도우 경로에 한글, 공백, 특수문자가 포함되어 있으면 문제가 생길 수 있습니다."
라고한다.