Jest: Bug: Watch-Modus unter Linux verursacht einen ENOSPC Node.js-Fehler

Erstellt am 4. Apr. 2017  ·  77Kommentare  ·  Quelle: facebook/jest

Versionen:

  • Garn: v0.21.3
  • Knoten: v6.9.2
  • npm: 3.10.9
  • Ubuntu: 16.10

Installiert mit : yarn global add jest (Mit einem chown bei ~/.config/yarn/global/node_modules/ )

Befehl fehlgeschlagen: jest -c lib/tools/testing/jest.config.json --no-cache --watch

Wenn ich jest -c lib/tools/testing/jest.config.json --no-cache ausführe, funktioniert das Testen zu 100%.

Fehlermeldung:

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-Verzeichnis: yarn config set tmp /tmp/

Freier Speicherplatz auf der Festplatte: df -h / (11% verwendet)

Jest-Konfiguration: bei 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}/**"
    ]
}

Hilfreichster Kommentar

Nach meinen Erkenntnissen hat es überhaupt nichts mit Jest zu tun. Unter Linux (oder Mac) haben wir eine maximale Anzahl von Systembeobachtern, die wir auf IO-Ebene platzieren können (nach meinem Verständnis). Bei großen Projekten scheint Jest also zu versuchen, einfach viel zu viele Dateien zu überwachen.

Reparieren:

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

Quelle: Node.JS Fehler: ENOSPC

Alle 77 Kommentare

Das bedeutet, dass auf Ihrem Laufwerk kein Platz mehr ist. Bitte bereinigen Sie Ihre Festplatte.

@cpojer nicht sicher, ob Sie das Problem gelesen haben, aber;

Freier Speicherplatz auf der Festplatte: df -h / (11% verwendet)

wurde dort erwähnt - Festplattenspeicher, obwohl als Problem gemeldet, ist eigentlich nicht das Problem.

Bump @cpojer

Ich habe das gleiche Problem und es ist definitiv freier Speicherplatz vorhanden

Leider haben wir keine Ressourcen, um dies unter Linux zu debuggen. Wenn Sie Zeit haben und einen Blick darauf werfen und uns mit einem Pull-Request helfen könnten, das Problem zu beheben, wäre das sehr dankbar.

@cpojer Ich

Nach meinen Erkenntnissen hat es überhaupt nichts mit Jest zu tun. Unter Linux (oder Mac) haben wir eine maximale Anzahl von Systembeobachtern, die wir auf IO-Ebene platzieren können (nach meinem Verständnis). Bei großen Projekten scheint Jest also zu versuchen, einfach viel zu viele Dateien zu überwachen.

Reparieren:

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

Quelle: Node.JS Fehler: ENOSPC

Vielen Dank für Ihre Untersuchung. Wenn Sie Watchman installieren, sollte es funktionieren.

Erst vor kurzem von Windows 7 auf Ubuntu 16.04.2 LTS gewechselt und Jest funktionierte unter Windows hervorragend, konnte aber aus den oben genannten Gründen nicht unter Linux ausgeführt werden. Es scheint nur zu scheitern, wenn Sie das Flag --watch hinzufügen.

Zuerst habe ich den Rat von @cpojer befolgt und Watchmen gemäß den Dokumenten installiert und das jest --watch erneut ausgeführt und ich habe die folgenden Fehler erhalten:

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.

Dies war nützlich, da es Ihnen sagt, was zu tun ist, also habe ich dann den Fix von @maraisr verwendet und jest arbeitet jetzt an Ubuntu :tada: :beers:

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

Danke, dass du das herausgefunden hast @maraisr @cpojer :+1: Denkst du, dass der Jest-Website etwas hinzugefügt werden sollte?

Danke Bruder @maraisr

@maraisr weißt du, ob es zufällig eine sudo-

@vspedr nicht sicher - kann ich mir anschauen!

Aber wir berühren dort Systemdateien, daher benötigen Sie aus Sicherheitsgründen erhöhte Berechtigungen. Wenn Sie sich selbst zu einem Sudoer machen können, können Sie diese Befehle meiner Meinung nach ohne Sudo ausführen.

Aber ja - ich schaue mal nach, was mir einfällt.

Vielleicht übersehe ich etwas... aber warum muss ich mir etwas in meinem node_modules Verzeichnis ansehen?
Wie kann ich es so konfigurieren, dass node_modules übersprungen wird?

@SimenB , wie ich sehe, überspringt watchPathIgnorePatterns Dateien erst, nachdem die Uhr selbst gestartet und ausgeführt wurde. Aus diesem Grund kann der Start der Uhr lange dauern und manchmal ENOSPC auslösen

Ach, okay. Eine PR, die watchPathIgnorePatterns respektiert, wenn man Beobachter einrichtet, wäre schön :)

@SimenB kannst du mich bitte auf die Stelle im Quellcode hinweisen, wo es direkt anfängt zu schauen? Es fällt mir schwer, diesen Ort zu finden

Finden Sie heraus, dass der Watcher HasteMap als Quelle für alle Dateien verwendet, die überwacht werden sollten, und die Frage, die sich gerade beim Erstellen von HasteMap befindet.
HasteMap respektiert die modulePathIgnorePatterns-Option, aber es ist nicht logisch, diese Option basierend auf der Beschreibung aus den Dokumenten zu verwenden:

Ein Array von Regexp-Musterzeichenfolgen, die mit allen Modulpfaden abgeglichen werden, bevor diese Pfade für den Modullader als "sichtbar" betrachtet werden. Wenn der Pfad eines bestimmten Moduls mit einem der Muster übereinstimmt, ist es in der Testumgebung nicht require()-fähig.

habe ich recht?

@maraisr

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

diese lösung funktioniert nicht auf meinem mac os 10.13.4 sie gibt den folgenden fehler zurück

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

Ich verstehe nicht, warum dieser Fehler "geschlossen" ist. Den Benutzer für eine banale Aufgabe zu sudo zu zwingen, ist sicherlich ein Fehler.

Es ist ein einziger Fehler bei Jest: Mokka, Wächter usw. beobachten alle _Unterverzeichnisse_, nicht . , um dieses Problem zu vermeiden. (Die Liste der Unterverzeichnisse kann optional sein.)

In Scherz 21 hatte ich dieses Problem nie. vscode konkurriert mit Scherz um das Ansehen der Dateien. Wenn ich vscode schließe, funktioniert jest richtig.

Ich bekam dieses Problem, als ich zwei VSCode-Instanzen geöffnet hatte.

Bitte öffnen Sie die Fehlerbehebung erneut oder fügen Sie sie zum Testen der Fehlerbehebung hinzu.

Ich habe SO lange gebraucht, um es zu finden und endlich zu beheben. Ich habe immer wieder angefangen, Workarounds zu machen. Danke @samit4me !

Ich hatte dies mit 2 Instanzen von VSCode geöffnet, was durchaus Sinn macht.

Um diesem Fehler zu entkommen, verwenden Sie einfach sublime/atom/gedit. Oder Sie können VSCode während des Erstellens/Debuggens schließen.

lsof | wc -l
kann Aufschluss über die Problemquelle geben.
Jedes Programm, ob es ein Browser ist oder mit einer Web-Engine (zB VS-Code) erstellt wurde, erhöht die Anzahl der geöffneten Dateideskriptoren drastisch (etwa 30 000 und mehr pro Programm).
Ich sehe keinen zuverlässigen Workaround, weil. Webtechnologie wird allgegenwärtig

Prost für den Punkt in die richtige Richtung. Ich hatte das gleiche Problem mit einer fehlgeschlagenen Uhr, aber in diesem Fall wurde nur eine Instanz von VSCode ausgeführt. Das Schließen, dann das Ausführen meines Projekts und das erneute Öffnen haben es gelöst.

IMO, es ist inakzeptabel, dass es eine Uhr auf node_modules

Es sind hauptsächlich funktionierende (und eine Menge gelöschter) Dateien von der Web-Engine, aber nicht von node_modules, die freie Knoten für Watcher blockieren.

Ich habe diesen Fehler erhalten, wenn ich die Projektabhängigkeiten aktualisiere. Um das zu lösen, habe ich gerade das node_modules entfernt und installiert

Danke sehr

@maraisr Toll, echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p hat bei mir unter Ubuntu 18.04.1 LTS funktioniert

@maraisr Vielen Dank für @xameeramir sagt

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p es auch für mich behoben :+1:

Beachten Sie, dass /etc/sysctl.conf normalerweise beim Upgrade (zB von Ubuntu 16 auf 18 LTS) überschrieben wird und die obere Grenze entfernt. Ich wurde davor gewarnt, aber es ist leicht, in einem Meer von anderen ähnlichen Warnungen zu übersehen. Obwohl ich den max_user_watches Diff _gesehen_ habe, war ich heute Morgen immer noch in einer Schleife, als ich zum ersten Mal auf den Fehler gestoßen bin, da es nicht offensichtlich ist, dass diese Dinge miteinander verbunden sind. Als ich jedoch auf dieser Problemseite landete, war klar, was ich beheben musste.

Hurra für die Lösung eines Problems, das ich vor zwei Jahren behoben hatte :lacht:

Lustige Sache mit fs.inotify.max_user_watches=524288
In meinem Fall scheint das Projekt groß genug zu sein, dass 524288 nicht groß genug ist. Also... nun, fs.inotify.max_user_watches=2048000 geholfen.
Könnte auch damit zusammenhängen, dass man nebenbei eine Menge Sachen im vs-Code öffnen muss.

Bekomme dies auf Ubuntu 18.10, wenn ich "npm start" auf meiner unberührten, jungfräulichen Create-React-App ausführe
HAT FUNKTIONIERT!!!
LÖSUNG
echo fs.inotify.max_user_watches=2048000 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Was es wert ist: Vielleicht hängt es mit der Umgebung zusammen (Modul X vs. Modul Y).

Ich habe 2 ReactNative-Anwendungen, die 2 verschiedene Konfigurationen haben. Vor allem, weil einer von ihnen eine React-Native-Camera verwendet, die noch nicht für die neuesten RN-Versionen (dh: neueste Gradle und solche Umgebungen) bereit ist. Das andere ist eine Demo zum Testen der neuesten RN-Version und -Umgebung.

Die Anwendung mit React-Native-Camera kompiliert einwandfrei (--variant=release) unter Linux . Der andere bekam den ENOSPC- Fehler. Der Fix "fs.inotify.max_user_watches" hat funktioniert. Ich war wie "hä?". Wie von anderen beschrieben habe ich tonnenweise Gigabyte auf dem NAS...

Hier sind die "package.json" beider Apps.

Vielleicht findest du etwas Nützliches.
App 1 (Kamera):

{
  "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"
  }
}

App 2 (Testdemo):

{
  "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"
  }
}

maraisr,
danke funktioniert!!!

einfach so laufen, wie sudo bei mir funktioniert hat

@ 4E71-NOP Ich habe dasselbe gesehen. Nachdem wir von RN 0.51 auf 0.57 aktualisiert hatten, stießen wir auf dieses Problem. Die Erhöhung des inotify Limits hat geholfen

ich laufe mit sudo ... und es funktioniert bei mir

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Das hat mir bei UBUNTU 18.10 geholfen

Vielen Dank. Aber genau wie @adamhooper bereits erwähnt hat, Forcing the user to sudo for a mundane task is certainly a bug.

Irgendwelche Ideen für regelmäßige Benutzer?

echo fs.inotify.max_user_watches=524288 |

Nach meinen Erkenntnissen hat es überhaupt nichts mit Jest zu tun. Unter Linux (oder Mac) haben wir eine maximale Anzahl von Systembeobachtern, die wir auf IO-Ebene platzieren können (nach meinem Verständnis). Bei großen Projekten scheint Jest also zu versuchen, einfach viel zu viele Dateien zu überwachen.

Reparieren:

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

Quelle: Node.JS Fehler: ENOSPC

Mein Problem perfekt gelöst, vielen Dank!

Ich habe es ohne node_modules mit der Einstellung modulePathIgnorePatterns behoben.

Fügen Sie dies zu Ihrer package.json hinzu:

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

Lief wie am Schnürchen. Danke @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.

Für zukünftige Besucher ist die Lösung von @pomber objektiv wesentlich besser, als das Watch-Limit zu erhöhen:

Fügen Sie dies zu Ihrer package.json hinzu:

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

Nach meinen Erkenntnissen hat es überhaupt nichts mit Jest zu tun. Unter Linux (oder Mac) haben wir eine maximale Anzahl von Systembeobachtern, die wir auf IO-Ebene platzieren können (nach meinem Verständnis). Bei großen Projekten scheint Jest also zu versuchen, einfach viel zu viele Dateien zu überwachen.

Reparieren:

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

Quelle: Node.JS Fehler: ENOSPC

Dadurch wurde ein Problem behoben, das ich mit Vue beim Ausführen von npm run serve Vielen Dank für den Vorschlag @maraisr

@pomber Danke, es löst mein Problem auf Fedora, ohne das

Danke @maraisr , es löst mein Problem :)

Vielen Dank! @maraisr

Deine Lösung hat für mich funktioniert, @maraisr!
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Danke!

Dies war mein Fehler für alle, die es interessiert:
Die Protokolle für Ihr Projekt werden unten angezeigt. Drücken Sie zum Beenden Strg+C.
(node:19425) UnhandledPromiseRejectionWarning: Fehler: ENOSPC: Systemlimit für die Anzahl der Dateibeobachter erreicht, Watch '/home/claire/Documents/my-app-name'
bei FSWatcher.start (internal/fs/watchers.js:165:26)
bei Object.watch (fs.js:1274:11)
unter NodeWatcher.watchdir (/home/claire/Documents/my-app-name/node_modules/sane/src/node_watcher.js:175:20)
bei neuem NodeWatcher (/home/claire/Documents/my-app-name/node_modules/sane/src/node_watcher.js:45:8)
bei createWatcher (/home/claire/Documents/my-app-name/node_modules/jest-haste-map/build/index.js:780:23)
bei Array.map ()
bei HasteMap._watch (/home/claire/Documents/my-app-name/node_modules/jest-haste-map/build/index.js:936:44)
unter _buildPromise._buildFileMap.then.then.hasteMap (/home/claire/Documents/my-app-name/node_modules/jest-haste-map/build/index.js:355:23)
bei processTicksAndRejections (internal/process/next_tick.js:81:5)
(node:19425) UnhandledPromiseRejectionWarning: Nicht behandelte Versprechensablehnung. Dieser Fehler entstand entweder durch das Einfügen in eine asynchrone Funktion ohne einen catch-Block oder durch das Zurückweisen eines Promises, das nicht mit .catch() verarbeitet wurde. (Ablehnungs-ID: 1)
(node:19425) [DEP0018] DeprecationWarning: Nicht behandelte Promise-Ablehnungen sind veraltet. Zukünftig wird der Node.js-Prozess bei Ablehnungen von Zusagen, die nicht verarbeitet werden, mit einem Exit-Code ungleich Null beendet.
ENOSPC: Systemlimit für Anzahl der Dateibeobachter erreicht, Watch '/home/claire/Documents/my-app-name'
ENOSPC: Systemlimit für Anzahl der Dateibeobachter erreicht, Watch '/home/claire/Documents/my-app-name'

Ich habe es ohne node_modules mit der Einstellung modulePathIgnorePatterns behoben.

Fügen Sie dies zu Ihrer package.json hinzu:

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

Danach entfernen Sie einfach den Ordner node_modules und führen npm install erneut aus.

"modulePathIgnorePatterns": [
      "node_modules"
    ]

das ist die wahre antwort

Wenn dieses Problem ständig auftritt und node_modules nicht ignorieren kann, hilft die Installation von Watchman:
https://facebook.github.io/watchman/

Es gibt Watchman-spezifische Optimierungen innerhalb von Jest, so dass es auch Ihre Startzeit für große Projekte erheblich verbessert.

In Zukunft werde ich versuchen, node_modules nicht automatisch zu beobachten, wenn dies diese Art von Fehler verursachen würde (zB: kein Watchman und nicht auf Darwin, daher kann fsevents ).

Oh Hey @scotthovestadt! Ich hoffe es geht dir gut!

Für zukünftige Besucher ist die Lösung von @pomber objektiv wesentlich besser, als das Watch-Limit zu erhöhen:

Fügen Sie dies zu Ihrer package.json hinzu:

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

Dies sollte die beste Antwort sein. Leute - bitte stoß das an. Warum würden Sie einfach sagen "oh, kein Speicher/Ressourcen - geben Sie ihm mehr Speicher/Ressourcen", ohne die Ursache zu untersuchen?

Leider haben wir keine Ressourcen, um dies unter Linux zu debuggen. Wenn Sie Zeit haben und einen Blick darauf werfen und uns mit einem Pull-Request helfen könnten, das Problem zu beheben, wäre das sehr dankbar.

Linux ist de-facto-Standard für alle professionellen Entwickler, interessieren Sie sich wirklich mehr für Windows- und Mac-Benutzer? Das ist eine Schande

@maraisr danke. Ich habe das Problem gelöst. :Tänzer:

Für zukünftige Besucher ist die Lösung von @pomber objektiv wesentlich besser, als das Watch-Limit zu erhöhen:

Fügen Sie dies zu Ihrer package.json hinzu:

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

Dies sollte die beste Antwort sein. Leute - bitte stoß das an. Warum würden Sie einfach sagen "oh, kein Speicher/Ressourcen - geben Sie ihm mehr Speicher/Ressourcen", ohne die Ursache zu untersuchen?

Nur eine Anmerkung für das Protokoll: Der gegenwärtige richtige Fix funktionierte nicht bis #7585, der #7544 reparierte.

Möglicherweise gibt es Berechtigungsprobleme, versuchen Sie es mit Sudo npm start

Dieser Befehl erhöht die Anzahl der zulässigen Beobachter:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Quelle

Nach meinen Erkenntnissen hat es überhaupt nichts mit Jest zu tun. Unter Linux (oder Mac) haben wir eine maximale Anzahl von Systembeobachtern, die wir auf IO-Ebene platzieren können (nach meinem Verständnis). Bei großen Projekten scheint Jest also zu versuchen, einfach viel zu viele Dateien zu überwachen.

Reparieren:

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

Quelle: Node.JS Fehler: ENOSPC

@maraisr Danke, deine Lösung hat unter Ubuntu 18.04 perfekt funktioniert

Nach meinen Erkenntnissen hat es überhaupt nichts mit Jest zu tun. Unter Linux (oder Mac) haben wir eine maximale Anzahl von Systembeobachtern, die wir auf IO-Ebene platzieren können (nach meinem Verständnis). Bei großen Projekten scheint Jest also zu versuchen, einfach viel zu viele Dateien zu überwachen.

Reparieren:

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

Quelle: Node.JS Fehler: ENOSPC

Danke, das hat mein Problem gelöst.

Zukünftige Besucher und @sunnykeshri @JimmyBastos @BrotherDonkey @CodeMonkeyG , bitte hören Sie für meine Vernunft auf, die Korrektur des Watch-Limits zu propagieren.

Für zukünftige Besucher ist die Lösung von @pomber objektiv wesentlich besser, als das Watch-Limit zu erhöhen:

Fügen Sie dies zu Ihrer package.json hinzu:

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

Dies sollte die beste Antwort sein. Leute - bitte stoß das an. Warum würden Sie einfach sagen "oh, kein Speicher/Ressourcen - geben Sie ihm mehr Speicher/Ressourcen", ohne die Ursache zu untersuchen?

Zukünftige Besucher und @sunnykeshri @JimmyBastos @BrotherDonkey @CodeMonkeyG , bitte hören Sie für meine Vernunft auf, die Korrektur des Watch-Limits zu propagieren.

Für zukünftige Besucher ist die Lösung von @pomber objektiv wesentlich besser, als das Watch-Limit zu erhöhen:

Fügen Sie dies zu Ihrer package.json hinzu:

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

Dies sollte die beste Antwort sein. Leute - bitte stoß das an. Warum würden Sie einfach sagen "oh, kein Speicher/Ressourcen - geben Sie ihm mehr Speicher/Ressourcen", ohne die Ursache zu untersuchen?

Create React App schränkt die Schlüssel ein, die innerhalb des Pakets jest config verwendet werden können - hat jemand einen Weg gefunden, dies in einer CRA-App zu lösen?

Nach meinen Erkenntnissen hat es überhaupt nichts mit Jest zu tun. Unter Linux (oder Mac) haben wir eine maximale Anzahl von Systembeobachtern, die wir auf IO-Ebene platzieren können (nach meinem Verständnis). Bei großen Projekten scheint Jest also zu versuchen, einfach viel zu viele Dateien zu überwachen.

Reparieren:

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

Quelle: Node.JS Fehler: ENOSPC

Danke resovel o problema já tava procurando a horas o que era esse rro

Nach meinen Erkenntnissen hat es überhaupt nichts mit Jest zu tun. Unter Linux (oder Mac) haben wir eine maximale Anzahl von Systembeobachtern, die wir auf IO-Ebene platzieren können (nach meinem Verständnis). Bei großen Projekten scheint Jest also zu versuchen, einfach viel zu viele Dateien zu überwachen.

Reparieren:

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

Quelle: Node.JS Fehler: ENOSPC

Nur ein Hinweis zur Verbesserung, es ist möglicherweise besser, die Benutzer anzuweisen, zu überprüfen, ob das Flag/der Wert noch nicht vorhanden ist, damit sie keine doppelten Instanzen davon erhalten. Das oder verwenden Sie eine Art Werkzeug dafür.

Nach meinen Erkenntnissen hat es überhaupt nichts mit Jest zu tun. Unter Linux (oder Mac) haben wir eine maximale Anzahl von Systembeobachtern, die wir auf IO-Ebene platzieren können (nach meinem Verständnis). Bei großen Projekten scheint Jest also zu versuchen, einfach viel zu viele Dateien zu überwachen.

Reparieren:

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

Quelle: Node.JS Fehler: ENOSPC

Vielen Dank für Ihre beste Antwort.

Nach meinen Erkenntnissen hat es überhaupt nichts mit Jest zu tun. Unter Linux (oder Mac) haben wir eine maximale Anzahl von Systembeobachtern, die wir auf IO-Ebene platzieren können (nach meinem Verständnis). Bei großen Projekten scheint Jest also zu versuchen, einfach viel zu viele Dateien zu überwachen.

Reparieren:

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

Quelle: Node.JS Fehler: ENOSPC

danke für deine antwort
es ist arbeit für mich

Danke @maraisr

Da in den letzten paar Kommentaren der frühere Workaround vorgeschlagen wurde und der spätere Fix langsam begraben wird, halte ich es für notwendig, zukünftigen Lesern (und @pradeepsrawat029 @karsa87 @igorgoiis ) noch einmal zu sagen, dass Sie zuerst den späteren Fix ausprobieren sollten, wenn anwendbar, was ursprünglich wegen eines Scherzfehlers nicht möglich war:

Für zukünftige Besucher ist die Lösung von @pomber objektiv wesentlich besser, als das Watch-Limit zu erhöhen:

Fügen Sie dies zu Ihrer package.json hinzu:

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

Dies sollte die beste Antwort sein. Leute - bitte stoß das an. Warum würden Sie einfach sagen "oh, kein Speicher/Ressourcen - geben Sie ihm mehr Speicher/Ressourcen", ohne die Ursache zu untersuchen?

Ich konnte dieses Problem mit sudo react-native start beheben

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen