Mac에서 Nano로 호스트 파일을 편집하지 마십시오
Expo의 개발 서버가 시작되지 않는 React Native 프로젝트에서 작업하면서 이것을 배웠습니다. 길고 참을성 있는 기다림 끝에 정교한 오류 메시지가 나타났습니다. 가장 눈길을 끄는 문구는 다음과 같습니다.
RangeError [ERR_SOCKET_BAD_PORT]: options.port should be >= 0 and < 65536. Received 65536.
Node.js를 최신 버전으로 업그레이드하고 Catalina를 Big Sur로 업그레이드하는 등 여러 번의 시도 끝에 이 버그가 지속되었습니다.
오류 메시지를 다시 살펴보면 문제의 패키지는 실제로
freeport-async
였습니다.구글링이 도움이 되었습니다. 나와 같은 버그를 공유하는 사람은 보지 못했지만 인터넷에서
freeport-async
의 소스 코드를 편집하여 버그를 해결한 방법을 공유한 사람도 있습니다.freeport-async이 하는 일은 지정된 범위 내에서 로컬 호스트의 사용 가능한 포트를 확인하는 것입니다. Promise를 반환하기 때문에 이름에
async
가 있습니다.내 컴퓨터에서 사용 가능한 포트를 찾는 데 실제로 필요하지 않았습니다. 어쨌든 나는 많은 서버를 운영하지 않았습니다. 그래서 거의 모든 코드를 주석 처리했습니다. 그리고
freePortAsync()
Expo에서 사용하는 19xxx 포트와 일치하는 확정된 숫자 19000을 반환하도록 요청했습니다. 그것은 효과가 있었다.그것은 확실히 더러운 해킹이었습니다. 그러나 나는 여전히 나 자신에 대해 꽤 기분이 좋았다.
그러나 몇 가지 단점이 있었습니다. iOS 시뮬레이터에서 내 앱을 미리 볼 수 있었지만 웹 브라우저에서는 볼 수 없었습니다.
그때 몇 가지 기괴한 오류 메시지가 내 마음에 다시 번쩍였다. 그 전에는 새로운 React 프로젝트를 생성할 때마다 개발 서버가 정상적으로 시작되었지만
localhost:3000
에 도달할 수 없었습니다. 이상하지만 127.0.0.1:3000
항상 작동합니다.내 노트를 살펴보면 Node.js가
localhost
와 관련된 오류 메시지를 표시한 적이 있습니다.getaddrinfo ENOTFOUND localhost
Error: getaddrinfo ENOTFOUND localhost
at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:71:26)
나는 내 Mac에서
hosts
파일을 백만 번 확인하고 때로는 편집했기 때문에 완전히 당황했습니다. localhost
를 가리키는 항목이 항상 127.0.0.1
있었습니다.Apple 사용자를 위한 StackExchange의 4분의 1에서 this comment에서 Satya을 찾을 때까지:
After living with this for a long time, I figured out (by checking from the Sublime editor) that the issue with my /etc/hosts file was that the "Line Endings" on the file were set to "Mac OS". When I changed the line endings to "Unix", I am able to ping localhost in the terminal and stuff's working as expected.
보호된 디렉토리에서 무언가를 편집해야 할 때마다 편의상 항상
sudo nano <filename>
를 사용했습니다. 파일을 저장할 때 저는 항상 Mac Format
를 선택했습니다. — 왜 안 됩니까? 결국 저는 맥을 사용하고 있습니다.hosts
파일을 열어서 Unix 스타일의 LF 라인 엔딩으로 저장했습니다. 컴퓨터를 다시 시작했습니다. 위에서 언급한 모든 버그가 사라졌습니다!구글링 키워드 "React Native"나 "Expo"는 React Native나 Expo의 문제가 아니었기 때문에 해결책을 제시하지 못했습니다. 게다가, 누가 Mac OS가 Mac 라인 엔딩으로 저장된 구성 파일에 의해 작동될 것이라고 예상했겠습니까?
Reference
이 문제에 관하여(Mac에서 Nano로 호스트 파일을 편집하지 마십시오), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/t0nghe/don-t-edit-hosts-file-with-nano-on-a-mac-17mf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)