Jest: 버그: Linux의 감시 모드로 인해 ENOSPC Node.js 오류가 발생함

에 만든 2017년 04월 04일  ·  77코멘트  ·  출처: facebook/jest

버전:

  • 원사: v0.21.3
  • 노드: v6.9.2
  • npm: 3.10.9
  • 우분투: 16.10

다음을 사용하여 설치됨 : yarn global add jest ( chown at ~/.config/yarn/global/node_modules/ )

명령 실패: jest -c lib/tools/testing/jest.config.json --no-cache --watch

jest -c lib/tools/testing/jest.config.json --no-cache 테스트를 실행하면 100% 잘 작동합니다.

에러 메시지:

fs.js:1431
    throw error;
    ^

Error: watch /home/fooBar/dev/blah/lib/tools/testing/node_modules/core-js/modules ENOSPC
    at exports._errnoException (util.js:1022:11)
    at FSWatcher.start (fs.js:1429:19)
    at Object.fs.watch (fs.js:1456:11)
    at NodeWatcher.watchdir (/home/fooBar/.config/yarn/global/node_modules/sane/src/node_watcher.js:148:20)
    at Walker.<anonymous> (/home/fooBar/.config/yarn/global/node_modules/sane/src/node_watcher.js:361:12)
    at emitTwo (events.js:106:13)
    at Walker.emit (events.js:191:7)
    at /home/fooBar/.config/yarn/global/node_modules/walker/lib/walker.js:69:16
    at go$readdir$cb (/home/fooBar/.config/yarn/global/node_modules/graceful-fs/graceful-fs.js:149:14)
    at FSReqWrap.oncomplete (fs.js:123:15)

Tmp 디렉토리: yarn config set tmp /tmp/

디스크 여유 공간: df -h / (11% 사용)

Jest 구성: lib/tools/testing/jest.config.json

{
    "clearMocks": true,
    "bail": true,
    "transform": {
        ".(ts|tsx)": "<rootDir>/lib/tools/testing/node_modules/ts-jest/preprocessor.js"
    },
    "testResultsProcessor": "<rootDir>/lib/tools/testing/node_modules/ts-jest/coverageprocessor.js",
    "testMatch": [
        "**/__tests__/*.(ts|tsx|js)"
    ],
    "moduleFileExtensions": [
        "ts",
        "tsx",
        "js"
    ],
    "moduleDirectories": [
        "node_modules",
        "<rootDir>/lib/tools/testing/node_modules"
    ],
    "collectCoverage": true,
    "coverageDirectory": "./reports/",
    "coverageReporters": [
        "clover",
        "lcov",
        "text-summary"
    ],
    "coverageThreshold": {
        "global": {
            "branches": 50,
            "functions": 80,
            "lines": 60
        }
    },
    "collectCoverageFrom": [
        "{src,lib}/**/*.{ts,js}",
        "!lib/{tools}/**/*",
        "!**/{node_modules,vendor}/**"
    ]
}

가장 유용한 댓글

내 발견에서 Jest와 전혀 관련이 없습니다. Linux(또는 Mac)에는 IO 수준에 배치할 수 있는 최대 시스템 감시자가 있습니다(내 이해에서). 따라서 대규모 프로젝트의 경우 Jest가 많은 파일을 감시하려고 하는 것 같습니다.

고치다:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

출처: Node.JS 오류: ENOSPC

모든 77 댓글

이것은 드라이브에 공간이 없음을 의미합니다. 디스크를 정리하십시오.

@cpojer 문제를 읽었는지 확실하지 않지만;

디스크 여유 공간: df -h / (11% 사용)

문제로 보고되었지만 실제로는 문제가 아닌 디스크 공간에 대해 언급했습니다.

범프 @cpojer

동일한 문제가 발생하고 디스크 여유 공간이 확실히 있습니다.

불행히도 Linux에서 이를 디버그할 리소스가 없습니다. 시간이 있고 문제를 해결하기 위한 풀 리퀘스트를 살펴보고 도움을 주시면 대단히 감사하겠습니다.

@cpojer 살펴보겠습니다. 하지만 Linux OS에만 국한되지는 않습니다. 그럼에도 불구하고 이 문제를 다시 여시겠습니까?

내 발견에서 Jest와 전혀 관련이 없습니다. Linux(또는 Mac)에는 IO 수준에 배치할 수 있는 최대 시스템 감시자가 있습니다(내 이해에서). 따라서 대규모 프로젝트의 경우 Jest가 많은 파일을 감시하려고 하는 것 같습니다.

고치다:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

출처: Node.JS 오류: ENOSPC

조사해 주셔서 감사합니다. watchman을 설치하면 작동합니다.

최근에 Windows 7에서 Ubuntu 16.04.2 LTS로 전환했으며 Jest는 Windows에서 훌륭하게 작동했지만 위에 나열된 동일한 이유로 Linux에서 실행하지 못했습니다. --watch 플래그를 추가하면 실패한 것 같습니다.

먼저 @cpojer의 조언을 받아 문서에 따라 파수꾼을 설치하고 jest --watch 다시 실행했는데 다음 오류가 발생했습니다.

jest --watch

events.js:163
      throw er; // Unhandled 'error' event
      ^

Error: A non-recoverable condition has triggered.  Watchman needs your help!
The triggering condition was at timestamp=1493335106: inotify-add-watch(/home/username/project_name/node_modules/browser-resolve/node_modules/resolve/example) -> The user limit on the total number of inotify watches was reached; increase the fs.inotify.max_user_watches sysctl
All requests will continue to fail with this message until you resolve
the underlying problem.  You will find more information on fixing this at
https://facebook.github.io/watchman/docs/troubleshooting.html#poison-inotify-add-watch

    at ChildProcess.<anonymous> (/home/username/project_name/node_modules/sane/node_modules/fb-watchman/index.js:207:21)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:194:7)
    at maybeClose (internal/child_process.js:899:16)
    at Socket.<anonymous> (internal/child_process.js:342:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:191:7)
    at Pipe._handle.close [as _onclose] (net.js:510:12)
npm ERR! Test failed.  See above for more details.

이것은 무엇을 해야 하는지 알려주기 때문에 유용했기 때문에 @maraisr 의 수정 사항을 사용했고

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

알아내주셔서 감사합니다 @maraisr @cpojer :+1: Jest 웹사이트에 뭔가를 추가해야 한다고 생각하시나요?

고마워 형 @maraisr

@maraisr 혹시 해당 솔루션의 sudo-less 버전이 있는지 알고 있습니까?

@vspedr 확실하지 않음 - 살펴볼 수 있습니다!

그러나 우리는 거기에서 시스템 파일을 건드리고 있으므로 보안을 위해 높은 권한이 필요합니다. 자신을 sudoer로 만들 수 있다면 sudo 없이 해당 명령을 실행할 수 있다고 생각합니다.

하지만 예 - 내가 생각해낼 수 있는 것이 무엇인지 살펴보겠습니다.

내가 뭔가를 놓치고 있는 것은 아닐까... 하지만 왜 jest가 내 node_modules 디렉토리에 있는 것을 관찰해야 합니까?
node_modules 건너뛰도록 구성하려면 어떻게 해야 합니까?

@SimenB , watchPathIgnorePatterns가 시계 자체가 실행되고 실행된 후에만 파일을 건너뛰는 것을 볼 수 있으므로 시계 시작 시간이 오래 걸리고 때로는 ENOSPC가 발생할 수 있습니다.

그래. 감시자를 설정할 때 watchPathIgnorePatterns 존중하는 PR이 좋을 것입니다. :)

@SimenB 소스 코드에서 시청을 직접 시작하는 위치를 알려

Watcher가 HasteMap을 시청해야 할 모든 파일의 소스로 사용하고 있는지 확인하고 지금 HasteMap을 빌드하는 과정에 있는 질문입니다.
HasteMap은 modulePathIgnorePatterns 옵션을 존중하지만 문서의 설명에 따라 이 옵션을 사용하는 것은 논리적이지 않습니다.

해당 경로가 모듈 로더에 '보이는' 것으로 간주되기 전에 모든 모듈 경로에 대해 일치하는 정규 표현식 패턴 문자열의 배열입니다. 주어진 모듈의 경로가 패턴 중 하나와 일치하면 테스트 환경에서 require() 가능하지 않습니다.

내가 맞아?

@maraisr

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

이 솔루션은 내 Mac os 10.13.4에서 작동하지 않으며 아래 오류를 반환합니다.

sysctl: illegal option -- p usage: sysctl [-bdehiNnoqx] name[=value] ... sysctl [-bdehNnoqx] -a sysctl: illegal option -- p usage: sysctl [-bdehiNnoqx] name[=value] ... sysctl [-bdehNnoqx] -a

이 버그가 "닫힘"인 이유를 모르겠습니다. 평범한 작업을 위해 사용자에게 sudo 를 강요하는 것은 확실히 버그입니다.

이것은 Jest의 고유한 버그입니다: mocha, guard 등. 이 문제를 피하기 위해 모두 . 아닌 특정 _subdirectories_를 감시합니다. (하위 디렉토리 목록은 선택 사항일 수 있습니다.)

농담 21에서 나는이 문제가 없었습니다. vscode는 파일을 보기 위해 jest와 경쟁하고 있습니다. vscode를 닫으면 jest가 올바르게 작동하기 시작합니다.

두 개의 VSCode 인스턴스를 열었을 때 이 문제가 발생했습니다.

테스트를 위해 문제 해결을 다시 열거나 수정 사항을 추가하십시오.

이것은 찾고 마침내 수정하는 데 너무 오래 걸렸습니다. 나는 계속해서 해결 방법을 시작했습니다. @samit4me 감사합니다!

나는 VSCode의 2개의 인스턴스를 열어서 이것을 가지고 있었는데, 이것은 완전히 이해가 됩니다.

이 버그에서 벗어나려면 sublime/atom/gedit를 사용하십시오. 또는 빌드/디버깅하는 동안 VSCode를 닫을 수 있습니다.

lsof | wc -l
문제의 원인을 밝힐 수 있습니다.
브라우저이든 내부에 웹 엔진(예: VS 코드)으로 구축된 모든 프로그램은 열린 파일 설명자의 수를 급격히 증가시킵니다(프로그램당 약 30,000개 이상).
신뢰할 수 있는 해결 방법이 보이지 않기 때문입니다. 웹 기술이 보편화되다

이것에 대한 올바른 방향에 대한 건배. 시계 실패와 동일한 문제가 있었지만 이 경우에는 VSCode 인스턴스가 하나만 실행됩니다. 그것을 닫은 다음 내 프로젝트를 실행하고 다시 실행하면 해결되었습니다.

IMO, node_modules 에 시계가 있어야 한다는 것은 용납할 수 없습니다.

그것은 주로 웹 엔진에서 작업(및 삭제된 파일 묶음) 파일이지만, node_modules에서는 그렇지 않아 감시자를 위한 무료 노드를 차단합니다.

프로젝트 종속성을 업데이트할 때 이 오류가 발생했습니다. 해결하기 위해 방금 node_modules 제거하고 설치했습니다.

매우 감사합니다

@maraisr 훌륭합니다. echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p 는 Ubuntu 18.04.1 LTS에서 저를 위해 일했습니다.

@maraisr @xameeramir가 말한 것처럼 우분투 18에서 완벽하게 작동하도록 수정해주셔서 감사합니다.

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p 저에게도 수정되었습니다 :+1:

/etc/sysctl.conf 는 일반적으로 업그레이드 시 덮어쓰여 지며(예: Ubuntu 16에서 18 LTS로) 더 높은 제한이 제거됩니다. 나는 이것에 대해 경고를 받았지만, 다른 유사한 경고의 바다에서 놓치기 쉽습니다. max_user_watches diff를 _ 보았지만_ 오늘 아침 처음 오류가 발생했을 때 이러한 것들이 연결되어 있는지 명확하지 않기 때문에 여전히 루프가 발생했습니다. 그러나 이 문제 페이지에 도착하면 수정해야 할 사항이 명확해졌습니다.

2년 전에 해결한 문제를 다시 해결해 주셔서 감사합니다.웃음:

fs.inotify.max_user_watches=524288 에 대한 재미있는 점
제 경우에는 524288 가 숫자만큼 크지 않을 정도로 프로젝트가 큰 것 같습니다. 그래서... fs.inotify.max_user_watches=2048000 도움이 되었습니다.
또한 측면에서 vs 코드에서 많은 항목을 여는 문제와 관련이 있을 수 있습니다.

내 손길이 닿지 않은 처녀 create-react-app에서 "npm start"를 실행할 때 우분투 18.10에서 이것을 얻습니다.
일했다!!!
해결책
에코 fs.inotify.max_user_watches=2048000 | sudo 티 -a /etc/sysctl.conf && sudo sysctl -p

가치 있는 것: 아마도 환경과 관련이 있을 것입니다(모듈 X 대 모듈 Y).

2개의 다른 구성이 있는 2개의 ReactNative 애플리케이션이 있습니다. 대부분 최신 RN 버전(예: 최신 Gradle 및 이러한 환경)에 대해 아직 준비되지 않은 React-Native-Camera를 사용하기 때문입니다. 다른 하나는 최신 RN 버전 및 환경을 테스트하는 데모입니다.

React-Native-Camera를 사용하는 애플리케이션은 Linux 에서 완벽하게 컴파일됩니다(--variant=release). 다른 하나는 ENOSPC 오류가 발생했습니다. "fs.inotify.max_user_watches" 수정이 작동했습니다. "응?" 다른 사람이 설명했듯이 NAS에 수 기가바이트가 있습니다...

다음은 두 앱의 "package.json"입니다.

아마도 당신은 유용한 것을 찾을 것입니다.
앱 1(카메라):

{
  "name": "********************",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "i18n-js": "^3.0.11",
    "react": "16.4.1",
    "react-native": "0.56.0",
    "react-native-camera": "^1.2.0",
    "react-native-languages": "^3.0.1",
    "react-navigation": "^2.16.0"
  },
  "devDependencies": {
    "babel-jest": "23.4.2",
    "babel-preset-react-native": "5.0.2",
    "jest": "23.5.0",
    "react-test-renderer": "16.4.1"
  },
  "jest": {
    "preset": "react-native"
  }
}

앱 2(테스트 데모):

{
  "name": "DemoReactNative",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "i18n-js": "^3.0.11",
    "react": "16.6.0-alpha.8af6728",
    "react-native": "0.57.3",
    "react-native-languages": "^3.0.1",
    "react-navigation": "^2.18.0"
  },
  "devDependencies": {
    "babel-jest": "23.6.0",
    "jest": "23.6.0",
    "metro-react-native-babel-preset": "0.48.1",
    "react-test-renderer": "16.6.0-alpha.8af6728"
  },
  "jest": {
    "preset": "react-native"
  }
}

마레저,
덕분에 작동합니다 !!!

sudo가 나를 위해 일한 것처럼 실행

@4E71-NOP 나도 같은 것을 보았다. RN 0.51에서 0.57로 업데이트한 후 이 문제가 발생하기 시작했습니다. inotify 한도를 높이는 데 도움이 되었습니다.

나는 sudo로 실행하고 ... 그것은 나에게 효과가 있습니다.

에코 fs.inotify.max_user_watches=524288 | sudo 티 -a /etc/sysctl.conf && sudo sysctl -p
이것은 UBUNTU 18.10에 도움이되었습니다.

감사합니다. 하지만 @adamhooper가 앞에서 언급했듯이 Forcing the user to sudo for a mundane task is certainly a bug.

일반 사용자를 위한 아이디어가 있습니까?

에코 fs.inotify.max_user_watches=524288 |

내 발견에서 Jest와 전혀 관련이 없습니다. Linux(또는 Mac)에는 IO 수준에 배치할 수 있는 최대 시스템 감시자가 있습니다(내 이해에서). 따라서 대규모 프로젝트의 경우 Jest가 많은 파일을 감시하려고 하는 것 같습니다.

고치다:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

출처: Node.JS 오류: ENOSPC

내 문제를 완벽하게 해결했습니다. 대단히 감사합니다!

modulePathIgnorePatterns 설정으로 node_modules 를 제외하고 수정했습니다.

이것을 package.json에 추가하십시오.

  "jest": {
    "modulePathIgnorePatterns": [
      "node_modules"
    ]
  }

매력처럼 일했습니다. @maraisr 님 감사

[hayesmaker64<strong i="5">@gohan</strong> hype-layer]$ npm test

> [email protected] test /home/hayesmaker64/Workspace/twitch/hype-layer
> react-scripts test

internal/fs/watchers.js:173
    throw error;
    ^

Error: ENOSPC: System limit for number of file watchers reached, watch '/home/hayesmaker64/Workspace/twitch/hype-layer/node_modules/get-stream'
    at FSWatcher.start (internal/fs/watchers.js:165:26)
    at Object.watch (fs.js:1254:11)
    at NodeWatcher.watchdir (/home/hayesmaker64/Workspace/twitch/hype-layer/node_modules/sane/src/node_watcher.js:175:20)
    at Walker.<anonymous> (/home/hayesmaker64/Workspace/twitch/hype-layer/node_modules/sane/src/common.js:116:12)
    at Walker.emit (events.js:182:13)
    at /home/hayesmaker64/Workspace/twitch/hype-layer/node_modules/walker/lib/walker.js:69:16
    at go$readdir$cb (/home/hayesmaker64/Workspace/twitch/hype-layer/node_modules/graceful-fs/graceful-fs.js:162:14)
    at FSReqWrap.oncomplete (fs.js:141:20)
npm ERR! Test failed.  See above for more details.
[hayesmaker64<strong i="6">@gohan</strong> hype-layer]$ ^C
[hayesmaker64<strong i="7">@gohan</strong> hype-layer]$ ^C
[hayesmaker64<strong i="8">@gohan</strong> hype-layer]$ npm test

> [email protected] test /home/hayesmaker64/Workspace/twitch/hype-layer
> react-scripts test


Out of the box, Create React App only supports overriding these Jest options:

  • collectCoverageFrom
  • coverageReporters
  • coverageThreshold
  • globalSetup
  • globalTeardown
  • resetMocks
  • resetModules
  • snapshotSerializers
  • watchPathIgnorePatterns.

These options in your package.json Jest configuration are not currently supported by Create React App:

  • modulePathIgnorePatterns

If you wish to override other Jest options, you need to eject from the default setup. You can do so by running npm run eject but remember that this is a one-way operation. You may also file an issue with Create React App to discuss supporting more options out of the box.

미래의 방문자를 위해 @pomber 의 솔루션은 시청 제한을 늘리는 것보다 객관적으로 훨씬 낫습니다.

이것을 package.json에 추가하십시오.

  "jest": {
    "modulePathIgnorePatterns": [
      "node_modules"
    ]
  }

내 발견에서 Jest와 전혀 관련이 없습니다. Linux(또는 Mac)에는 IO 수준에 배치할 수 있는 최대 시스템 감시자가 있습니다(내 이해에서). 따라서 대규모 프로젝트의 경우 Jest가 많은 파일을 감시하려고 하는 것 같습니다.

고치다:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

출처: Node.JS 오류: ENOSPC

이것은 npm run serve 실행할 때 Vue에서 발생하던 문제를 수정했습니다. @maraisr

@pomber 감사합니다. 시스템 제한을 늘리지 않고 Fedora에서 제 문제를 해결했습니다.

@maraisr 감사합니다, 그것은 내 문제를 해결합니다 :)

감사합니다! @maraisr

귀하의 솔루션은 @maraisr에게 효과적이었습니다!
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
감사 해요!

이것은 관심 있는 사람을 위한 내 오류였습니다.
프로젝트에 대한 로그가 아래에 나타납니다. Ctrl+C를 눌러 종료합니다.
(노드:19425) UnhandledPromiseRejectionWarning: 오류: ENOSPC: 파일 감시자 수에 대한 시스템 제한에 도달했습니다. '/home/claire/Documents/my-app-name'을 시청하세요.
FSWatcher.start에서 (internal/fs/watchers.js:165:26)
Object.watch에서 (fs.js:1274:11)
NodeWatcher.watchdir에서 (/home/claire/Documents/my-app-name/node_modules/sane/src/node_watcher.js:175:20)
새로운 NodeWatcher에서 (/home/claire/Documents/my-app-name/node_modules/sane/src/node_watcher.js:45:8)
createWatcher에서(/home/claire/Documents/my-app-name/node_modules/jest-haste-map/build/index.js:780:23)
Array.map에서 ()
HasteMap._watch에서 (/home/claire/Documents/my-app-name/node_modules/jest-haste-map/build/index.js:936:44)
_buildPromise._buildFileMap.then.then.hasteMap에서 (/home/claire/Documents/my-app-name/node_modules/jest-haste-map/build/index.js:355:23)
processTicksAndRejections에서 (internal/process/next_tick.js:81:5)
(node:19425) UnhandledPromiseRejectionWarning: 처리되지 않은 약속이 거부되었습니다. 이 오류는 catch 블록 없이 비동기 함수 내부를 던지거나 .catch()로 처리되지 않은 약속을 거부하여 발생했습니다. (거부 ID: 1)
(node:19425) [DEP0018] DeprecationWarning: 처리되지 않은 약속 거부는 더 이상 사용되지 않습니다. 앞으로 처리되지 않은 약속 거부는 0이 아닌 종료 코드로 Node.js 프로세스를 종료합니다.
ENOSPC: 파일 감시자 수에 대한 시스템 제한에 도달했습니다. '/home/claire/Documents/my-app-name'을 시청하세요.
ENOSPC: 파일 감시자 수에 대한 시스템 제한에 도달했습니다. '/home/claire/Documents/my-app-name'을 시청하세요.

modulePathIgnorePatterns 설정으로 node_modules 를 제외하고 수정했습니다.

이것을 package.json에 추가하십시오.

  "jest": {
    "modulePathIgnorePatterns": [
      "node_modules"
    ]
  }

그런 다음 node_modules 폴더를 제거하고 npm install 다시 실행하십시오.

"modulePathIgnorePatterns": [
      "node_modules"
    ]

이것이 진정한 답이다

이 문제가 지속적으로 발생하고 node_modules 무시할 수 없는 경우 Watchman을 설치하면 다음과 같은 도움이 됩니다.
https://facebook.github.io/watchman/

Jest에는 Watchman 관련 최적화가 있으므로 대규모 프로젝트의 시작 시간도 크게 향상됩니다.

앞으로는 node_modules 자동으로 감시하지 않는 방법에 대해 살펴보겠습니다. 이렇게 하면 이러한 유형의 오류가 발생할 수 있습니다(예: Watchman이 없고 Darwin이 아니므로 fsevents 사용할 수 없음).

오, 안녕하세요 @scotthovestadt! 너가 잘 지내길 바래!

미래의 방문자를 위해 @pomber 의 솔루션은 시청 제한을 늘리는 것보다 객관적으로 훨씬 낫습니다.

이것을 package.json에 추가하십시오.

  "jest": {
    "modulePathIgnorePatterns": [
      "node_modules"
    ]
  }

이것은 최고의 답변이어야합니다. 사람들 - 이것을 부딪쳐주세요. 원인을 조사하지 않고 "오, 메모리/리소스 부족 - 더 많은 메모리/리소스 제공"이라고 말하는 이유는 무엇입니까?

불행히도 Linux에서 이를 디버그할 리소스가 없습니다. 시간이 있고 문제를 해결하기 위한 풀 리퀘스트를 살펴보고 도움을 주시면 대단히 감사하겠습니다.

Linux는 모든 전문 개발자를 위한 사실상의 표준입니다. Windows 및 Mac 사용자에 대해 정말로 관심이 있으십니까? 그건 부끄러운 일이야

@maraisr 감사합니다. 문제를 해결했습니다. :춤추는 사람:

미래의 방문자를 위해 @pomber 의 솔루션은 시청 제한을 늘리는 것보다 객관적으로 훨씬 낫습니다.

이것을 package.json에 추가하십시오.

  "jest": {
    "modulePathIgnorePatterns": [
      "node_modules"
    ]
  }

이것은 최고의 답변이어야합니다. 사람들 - 이것을 부딪쳐주세요. 원인을 조사하지 않고 "오, 메모리/리소스 부족 - 더 많은 메모리/리소스 제공"이라고 말하는 이유는 무엇입니까?

기록을 위한 참고 사항: 현재의 적절한 수정은 #7544를 수정한 #7585까지 작동하지 않았습니다.

권한 문제가 있을 수 있습니다. Sudo npm start 시도

이 명령은 허용된 감시자의 수를 늘립니다.
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
원천

내 발견에서 Jest와 전혀 관련이 없습니다. Linux(또는 Mac)에는 IO 수준에 배치할 수 있는 최대 시스템 감시자가 있습니다(내 이해에서). 따라서 대규모 프로젝트의 경우 Jest가 많은 파일을 감시하려고 하는 것 같습니다.

고치다:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

출처: Node.JS 오류: ENOSPC

@maraisr 감사합니다, 귀하의 솔루션은 Ubuntu 18.04에서 완벽하게 작동했습니다.

내 발견에서 Jest와 전혀 관련이 없습니다. Linux(또는 Mac)에는 IO 수준에 배치할 수 있는 최대 시스템 감시자가 있습니다(내 이해에서). 따라서 대규모 프로젝트의 경우 Jest가 많은 파일을 감시하려고 하는 것 같습니다.

고치다:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

출처: Node.JS 오류: ENOSPC

덕분에 문제가 해결되었습니다.

미래의 방문자와 @sunnykeshri @JimmyBastos @BrotherDonkey @CodeMonkeyG , 제 정신을 위해 시계 제한 수정 전파를 중단하십시오.

미래의 방문자를 위해 @pomber 의 솔루션은 시청 제한을 늘리는 것보다 객관적으로 훨씬 낫습니다.

이것을 package.json에 추가하십시오.

  "jest": {
    "modulePathIgnorePatterns": [
      "node_modules"
    ]
  }

이것은 최고의 답변이어야합니다. 사람들 - 이것을 부딪쳐주세요. 원인을 조사하지 않고 "오, 메모리/리소스 부족 - 더 많은 메모리/리소스 제공"이라고 말하는 이유는 무엇입니까?

미래의 방문자와 @sunnykeshri @JimmyBastos @BrotherDonkey @CodeMonkeyG , 제 정신을 위해 시계 제한 수정 전파를 중단하십시오.

미래의 방문자를 위해 @pomber 의 솔루션은 시청 제한을 늘리는 것보다 객관적으로 훨씬 낫습니다.

이것을 package.json에 추가하십시오.

  "jest": {
    "modulePathIgnorePatterns": [
      "node_modules"
    ]
  }

이것은 최고의 답변이어야합니다. 사람들 - 이것을 부딪쳐주세요. 원인을 조사하지 않고 "오, 메모리/리소스 부족 - 더 많은 메모리/리소스 제공"이라고 말하는 이유는 무엇입니까?

Create React App은 패키지 jest config 내에서 사용할 수 있는 키를 제한합니다. CRA 앱에서 이 문제를 해결할 방법을 찾은 사람이 있습니까?

내 발견에서 Jest와 전혀 관련이 없습니다. Linux(또는 Mac)에는 IO 수준에 배치할 수 있는 최대 시스템 감시자가 있습니다(내 이해에서). 따라서 대규모 프로젝트의 경우 Jest가 많은 파일을 감시하려고 하는 것 같습니다.

고치다:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

출처: Node.JS 오류: ENOSPC

감사합니다 resovel o problema já tava procurando a horas o que era esse rro

내 발견에서 Jest와 전혀 관련이 없습니다. Linux(또는 Mac)에는 IO 수준에 배치할 수 있는 최대 시스템 감시자가 있습니다(내 이해에서). 따라서 대규모 프로젝트의 경우 Jest가 많은 파일을 감시하려고 하는 것 같습니다.

고치다:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

출처: Node.JS 오류: ENOSPC

개선을 위한 참고 사항으로, 플래그/값이 이미 존재하지 않는지 확인하여 중복 인스턴스를 얻지 않도록 사용자에게 지시하는 것이 더 나을 수 있습니다. 또는 이를 염두에 두고 도구를 사용하십시오.

내 발견에서 Jest와 전혀 관련이 없습니다. Linux(또는 Mac)에는 IO 수준에 배치할 수 있는 최대 시스템 감시자가 있습니다(내 이해에서). 따라서 대규모 프로젝트의 경우 Jest가 많은 파일을 감시하려고 하는 것 같습니다.

고치다:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

출처: Node.JS 오류: ENOSPC

최고의 답변 감사합니다.

내 발견에서 Jest와 전혀 관련이 없습니다. Linux(또는 Mac)에는 IO 수준에 배치할 수 있는 최대 시스템 감시자가 있습니다(내 이해에서). 따라서 대규모 프로젝트의 경우 Jest가 많은 파일을 감시하려고 하는 것 같습니다.

고치다:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

출처: Node.JS 오류: ENOSPC

답변 감사합니다
나를 위한 일이야

@maraisr님 감사

마지막 몇 가지 의견이 이전 해결 방법을 제안했고 이후 수정 사항이 묻히기 시작했기 때문에 미래의 독자(및 @pradeepsrawat029 @karsa87 @igorgoiis )에게 다음과 같은 경우 나중에 수정 사항을 먼저 시도해야 한다는 점을 반복할 필요가 있다고 생각합니다. 원래 농담 버그로 인해 불가능했던 적용 가능:

미래의 방문자를 위해 @pomber 의 솔루션은 시청 제한을 늘리는 것보다 객관적으로 훨씬 낫습니다.

이것을 package.json에 추가하십시오.

  "jest": {
    "modulePathIgnorePatterns": [
      "node_modules"
    ]
  }

이것은 최고의 답변이어야합니다. 사람들 - 이것을 부딪쳐주세요. 원인을 조사하지 않고 "오, 메모리/리소스 부족 - 더 많은 메모리/리소스 제공"이라고 말하는 이유는 무엇입니까?

sudo react-native start 이 문제를 해결할 수 있었습니다.

이 페이지가 도움이 되었나요?
0 / 5 - 0 등급