Project/SideProject

[맛집 지도앱] 오류와의 싸움1<Error: EMFILE: too many open files, watch>

ParkYeseul 2024. 9. 8. 18:35

"풍부한 포트폴리오를 위해서 2차 프로젝트 전까지 사이드 프로젝트를 해야겠다. "라고 다짐했다.

다소 실행력이 있는 편으로 척척 진행되었다. with 영순언니

 

일요일 11시 강의를 처음 들었다. 

개발환경 셋팅은 강의가 10분 정도 되길래 가볍게 시작했지만, 현재 오후 6시...이제 막 개발 환경 셋팅을 마쳤다.

나는 무엇을 간과했는가?!!!!

 

너무 배고프고 눈이 흐리멍텅 해졌다. 아무튼 오류 해결했다.

이걸 한 번 기록을 해보고자 허기진 배를 웅크리며.. 글을 적는닷.

 


간단하게 소개를 하자면 react-native를 활용하여 맛집 지도앱을 만든다.

 

<내 컴퓨터는 MacBookAir M2 2022년 모델>

학원에는 윈도우로 개발을 하다보니 맥 환경에는 낯설기도 하다. 

 

 

아무튼! 내가 마주한 오류.


Error: EMFILE: too many open files, watch
    at FSWatcher._handle.onchange (node:internal/fs/watchers:207:21)

node:events:497
      throw er; // Unhandled 'error' event
      ^

Error: EMFILE: too many open files, watch
    at FSWatcher._handle.onchange (node:internal/fs/watchers:207:21)
Emitted 'error' event on NodeWatcher instance at:
    at FSWatcher._checkedEmitError (/Users/parkyeseul/MatzipApp/node_modules/metro-file-map/src/watchers/NodeWatcher.js:82:12)
    at FSWatcher.emit (node:events:519:28)
    at FSWatcher._handle.onchange (node:internal/fs/watchers:213:12) {
  errno: -24,
  syscall: 'watch',
  code: 'EMFILE',
  filename: null
}

 

분명 하라는 대로 똑같이 했거든요.. 

근데 전 왜 안되고 강사님은 되는지 정말........

의문 ?

 

그래서 아예 날리고 다시 깔아봤는데도 똑같이 오류가 떴다.

 

 


구글링 + GPT의 해결 방법을

정리해보자면!


EMFILE: too many open files 오류는 파일 디스크립터의 최대 수를 초과했을 때 발생

이는 보통 파일 시스템을 감시하는 도구가 너무 많은 파일을 열려고 할 때 발생

 

 

1.  파일 디스크립터 제한 증가

파일 디스크립터의 최대 수를 증가시켜 문제 해결

터미널에 ulimit -n 입력 후 현재 사용 중인 파일 수를 확인

 

ulimit -n 8192 임시로 파일 수 제한 증가 

 

= 실패

 

2. Metro Bundler 캐시 클리어

npx react-native start --reset-cache
 
 
= 실패
 
 
 

3. 프로젝트의 의존성 재설치

의존성을 재설치하여 문제 해결

 

node_modules 및 lock 파일 삭제:

rm -rf node_modules
rm package-lock.json 

 

= 실패

 

 

4. Metro Watcher 설정 변경

metro.config.js 파일 수정하여 해결

(이거 건들이면 config 줄줄이 오류 나던데.. 조심..하세요..)

 
// metro.config.js const { getDefaultConfig } = require('@react-native/metro-config'); module.exports = { ...getDefaultConfig(__dirname), watchFolders: [ // Watch specific folders if needed ], resolver: { // Additional resolver configuration if needed }, };
 
= 실패
 
 

 

5. 터미널 재시작/캐시 삭제/Node.js LTS 재설치 등등 각종 재설치

= 실패

 

 

6. 구글링: <brew update 혹은 brew install watchman>

처음에 깔고 시작해서 이미 존재하고,, 이미 되어있다는 메세지로 거듭되는 실패

다들 여기서 해결되었다는 후기가 많았으니 참고하세욥

 

= 실패

 

 

 

 

 

7.  Npm i 

다 그만두고 싶어질 때 아무생각 없이 쳐본 npm i

드디어 강사님과 같은 화면을 마주했다.

 

 

띠용! 
의존성 재설치 엄청 많이 했는데 갑자기 왜 됐을까?

 

 

시뮬레이터 실행도 잘 된다. 

 

간단해서 어이없으면서도 문제를 해결했다는 사실에 기쁨이 공존하며 나 드디어 밥 먹는다. 눈물..🥹

 

어제 개발자 관련 책을 읽다가 깨달은 것이 하나 있었는데, 

작가님이 말씀하시길 개발자는 문제해결력이 가장 중요하다고, 모든 문제를 스스로 해결할 줄 알아야 한다고 하셨다.

그 말을 염두에 두고 앞으로 공부를 해야지! 했는데 오늘 4시간 가까이 싸운 오류와 이겨서 기분이 좋다!

그치만 우리 싸우지 말자 오류야.. 

 

내일 다시 이런 오류가 나타나면 또 추가해볼게...나타나진 말고! 다신 보지말자 !!!!

'Project > SideProject' 카테고리의 다른 글

[2nd Project] 카카오 로그인 API 구현  (7) 2024.10.01