Jest: الخطأ: يتسبب وضع المشاهدة على Linux في حدوث خطأ ENOSPC Node.js

تم إنشاؤها على ٤ أبريل ٢٠١٧  ·  77تعليقات  ·  مصدر: facebook/jest

الإصدارات:

  • الغزل: v0.21.3
  • العقدة: v6.9.2
  • نانومتر: 3.10.9
  • أوبونتو: 16.10

تم التثبيت باستخدام : yarn global add jest (مع chown بسعر ~/.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. بغض النظر ، هل تمانع في إعادة فتح هذه القضية؟

من النتائج التي توصلت إليها ، لا علاقة لها بـ Jest على الإطلاق. في نظام التشغيل Linux (أو Mac) لدينا أقصى عدد من مراقبي النظام الذين يمكننا وضعهم على مستوى IO (حسب فهمي). لذلك بالنسبة للمشاريع الكبيرة ، يبدو أن Jest يحاول مشاهدة العديد من الملفات.

لإصلاح:

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

المصدر: خطأ Node.JS: ENOSPC

شكرا للتحقيق ، إذا قمت بتثبيت الحارس ، فمن المفترض أن يعمل.

تم التبديل مؤخرًا من 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 ويعمل jest الآن على Ubuntu:

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

شكرا لكشف هذا الخروجcpojermaraisr: +1: هل تعتقد ينبغي أن يضاف شيء إلى موقع الدعابة ؟

شكرا اخيmaraisr

maraisr هل تعرف ما إذا كانت هناك نسخة أقل من sudo من هذا الحل ، بأي فرصة؟

vspedr لست متأكدًا - يمكنني إلقاء نظرة!

لكننا نتطرق إلى ملفات النظام هناك ، لذلك تحتاج إلى أذونات مرتفعة نوعًا ما للأمان. إذا كنت تستطيع أن تجعل نفسك sudoer أعتقد أنه يمكنك تشغيل هذه الأوامر دون sudo.

لكن نعم - سألقي نظرة وأرى ما يمكنني التوصل إليه.

ربما أفتقد شيئًا ما ... ولكن لماذا يحتاج المزاح إلى مشاهدة أي شيء في دليلي node_modules ؟
كيف يمكنني تهيئته بحيث يتخطى node_modules ؟

SimenB ، كما أرى أن watchPathIgnorePatterns تتخطى الملفات فقط بعد تشغيل الساعة نفسها ، ولهذا السبب قد يستغرق بدء الساعة وقتًا طويلاً وقد يؤدي أحيانًا إلى إلقاء ENOSPC

آه ، حسنًا. العلاقات العامة تحترم watchPathIgnorePatterns عند إعداد المراقبين سيكون أمرًا رائعًا :)

SimenB هل يمكنك أن تدلني على المكان في الكود المصدري حيث تبدأ المشاهدة مباشرة؟ أجد صعوبة في العثور على هذا المكان

اكتشف أن المراقب يستخدم HasteMap كمصدر لجميع الملفات التي يجب مشاهدتها ، والسؤال الآن في طور بناء HasteMap.
يحترم HasteMap خيار modulePathIgnorePatterns ، ولكن ليس من المنطقي استخدام هذا الخيار بناءً على الوصف الوارد في المستندات:

مصفوفة من سلاسل نمط regexp المطابقة لجميع مسارات الوحدة قبل أن يتم اعتبار هذه المسارات "مرئية" لمحمل الوحدة النمطية. إذا تطابق مسار وحدة معينة مع أي من الأنماط ، فلن يتطلب الأمر () - قادر في بيئة الاختبار.

هل انا على حق؟

تضمين التغريدة

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_ محددة ، وليس . ، لتجنب هذه المشكلة. (يمكن أن تكون قائمة الدلائل الفرعية اختيارية.)

في jest 21 لم أواجه هذه المشكلة. vscode يتنافس مع الدعابة لمشاهدة الملفات. عندما أغلق vscode ، تبدأ jest في العمل بشكل صحيح.

كنت أتلقى هذه المشكلة ، عندما تم فتح مثيلين VSCode.

الرجاء إعادة فتح أو إضافة الإصلاح إلى استكشاف الأخطاء وإصلاحها للاختبار.

استغرق هذا وقتًا طويلاً للعثور عليه وإصلاحه أخيرًا. بدأت في إجراء الحلول مرارًا وتكرارًا. شكرا لك @ samit4me !

كان لدي هذا مع وجود 2 مثيلين من VSCode مفتوحين ، مما يجعل الأمر منطقيًا تمامًا.

للابتعاد عن هذا الخطأ ، ما عليك سوى استخدام سامية / ذرة / جيديت. أو يمكنك إغلاق VSCode أثناء البناء / التصحيح.

lsof | wc -l
يمكن أن تلقي الضوء على مصدر المشكلة.
أي برنامج ، سواء كان متصفحًا أو تم إنشاؤه باستخدام محرك ويب بداخله (مثل رمز VS) ، يزيد بشكل كبير من عدد واصفات الملفات المفتوحة (حوالي 30000 وأكثر لكل برنامج).
لا أرى حلاً موثوقًا به ، لأن. أصبحت تكنولوجيا الويب في كل مكان

في صحتك للنقطة في الاتجاه الصحيح في هذا الشأن. واجهت نفس المشكلة مع فشل الساعة ، ولكن في هذه الحالة ، يتم تشغيل مثيل واحد فقط من VSCode. إغلاق ذلك ، ثم تشغيل مشروعي وإعادة فتحه ، تم حله.

IMO ، من غير المقبول أن تكون هناك ساعة على node_modules

إنها تعمل بشكل أساسي (ومجموعة من الملفات المحذوفة) من محرك الويب ، ولكن ليس من node_modules ، التي تحظر العقد المجانية للمراقب.

تلقيت هذا الخطأ عندما أقوم بتحديث تبعيات المشروع. لحل المشكلة ، قمت للتو بإزالة وتثبيت node_modules

شكرا جزيلا لك

maraisr رائع ، لقد عملت معي على Ubuntu 18.04.1 LTS echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

maraisr شكرًا لك على الإصلاح يعمل بشكل مثالي على ubuntu 18 مثل xameeramir يقول

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 ، إلا أنني ما زلت ألقيت في حلقة هذا الصباح عندما أصبت بالخطأ لأول مرة ، لأنه ليس من الواضح أن هذه الأشياء متصلة. ومع ذلك ، بمجرد وصولي إلى صفحة المشكلة هذه ، كان من الواضح ما أحتاج إلى إصلاحه.

الصيحة لإعادة حل مشكلة كنت قد أصلحتها منذ عامين: يضحك:

شيء مضحك حول fs.inotify.max_user_watches=524288
في حالتي ، يبدو أن المشروع كبير بما يكفي لأن 524288 ليس كبيرًا بما يكفي من رقم. حسنًا ... ساعد fs.inotify.max_user_watches=2048000 .
قد يكون مرتبطًا أيضًا بمسألة فتح الكثير من الأشياء في مقابل التعليمات البرمجية على الجانب.

الحصول على هذا في ubuntu 18.10 عندما أقوم بتشغيل "npm start" على تطبيق create-response-app الخاص بي الذي لم يمسه أحد
عمل!!!
المحلول
صدى fs.inotify.max_user_watches = 2048000 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

لما يستحق: ربما يتعلق الأمر بالبيئة (الوحدة X مقابل الوحدة Y).

لدي تطبيقان ReactNative بهما تكوينان مختلفان. غالبًا لأن أحدهم يستخدم React-Native-Camera التي ليست جاهزة بعد لأحدث إصدارات RN (على سبيل المثال: أحدث Gradle ومثل هذه البيئة). الآخر هو عرض توضيحي لاختبار أحدث إصدار وبيئة RN.

يقوم التطبيق الذي يستخدم React-Native-Camera بتجميع لا تشوبه شائبة (--variant = release) على نظام Linux . الآخر حصل على خطأ 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"
  }
}

مريصر
شكرا يعمل !!!

مجرد تشغيل كما عملت سودو بالنسبة لي

@ 4E71-NOP رأيت نفس الشيء. بمجرد التحديث من RN 0.51 إلى 0.57 ، بدأنا في مواجهة هذه المشكلة. ساعدت زيادة حد inotify

أركض مع سودو ... وهو يعمل معي

صدى fs.inotify.max_user_watches = 524288 | sudo tee -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

حل مشكلتي تماما ، شكرا جزيلا لك!

لقد أصلحته باستثناء node_modules مع إعداد modulePathIgnorePatterns .

أضف هذا إلى الحزمة الخاصة بك. 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.

للزوار المستقبليين ، يعتبر حل

أضف هذا إلى الحزمة الخاصة بك. 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

أدى هذا إلى إصلاح مشكلة كنت أواجهها مع Vue عند تشغيل npm run serve شكرًا لك على اقتراحmaraisr

pomber شكرًا لك ، لقد حل مشكلتي في Fedora دون زيادة أي حد للنظام.

شكرا 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 (داخلي / 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 (داخلي / عملية / next_tick.js: 81: 5)
(العقدة: 19425) UnhandledPromiseRejectionWarning: رفض الوعد الذي لم تتم معالجته. نشأ هذا الخطأ إما عن طريق الرمي داخل دالة غير متزامنة بدون كتلة catch ، أو عن طريق رفض وعد لم يتم التعامل معه باستخدام .catch (). (معرف الرفض: 1)
(العقدة: 19425) [DEP0018] تحذير الإيقاف: تم إهمال رفض الوعود غير المعالجة. في المستقبل ، ستؤدي حالات رفض الوعد التي لم تتم معالجتها إلى إنهاء عملية Node.js برمز إنهاء غير صفري.
ENOSPC: تم الوصول إلى حد النظام لعدد مراقبي الملفات ، شاهد "/ home / claire / Documents / my-app-name"
ENOSPC: تم الوصول إلى حد النظام لعدد مراقبي الملفات ، شاهد "/ home / claire / Documents / my-app-name"

لقد أصلحته باستثناء node_modules مع إعداد modulePathIgnorePatterns .

أضف هذا إلى الحزمة الخاصة بك. json:

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

بعد ذلك ، ما عليك سوى إزالة المجلد node_modules وتشغيل npm install مرة أخرى.

"modulePathIgnorePatterns": [
      "node_modules"
    ]

هذا هو الجواب الحقيقي

إذا واجهت هذه المشكلة باستمرار ولا يمكنك تجاهل node_modules ، فإن تثبيت Watchman سيساعدك:
https://facebook.github.io/watchman/

هناك تحسينات خاصة بـ Watchman داخل Jest ، لذا ستعمل أيضًا على تحسين وقت بدء التشغيل للمشاريع الكبيرة بشكل ملحوظ.

من الآن فصاعدًا ، سأفكر في عدم مشاهدة node_modules تلقائيًا عندما يؤدي ذلك إلى حدوث هذا النوع من الخطأ (على سبيل المثال: لا يوجد مراقب وليس على داروين ، لذا لا يمكنني استخدام fsevents ).

يا إلهي @ scotthovestadt! أتمنى أن تكون بخير!

للزوار المستقبليين ، يعتبر حل

أضف هذا إلى الحزمة الخاصة بك. json:

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

يجب أن تكون هذه هي أفضل إجابة. الناس - من فضلك صدم هذا. لماذا تقول ببساطة "أوه ، نفدت الذاكرة / الموارد - أعطها المزيد من الذاكرة / الموارد" دون فحص السبب؟

للأسف ، ليس لدينا موارد لتصحيح هذا الأمر على Linux. إذا كان لديك الوقت ويمكنك إلقاء نظرة ومساعدتنا في طلب سحب لإصلاحه ، فسيكون ذلك موضع تقدير كبير.

Linux هو المعيار الفعلي لجميع المطورين المحترفين ، هل تهتم حقًا بمستخدمي Windows و Mac؟ وهذا هو العار

maraisr شكرا. لقد حللت المشكلة. :راقصة:

للزوار المستقبليين ، يعتبر حل

أضف هذا إلى الحزمة الخاصة بك. json:

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

يجب أن تكون هذه هي أفضل إجابة. الناس - من فضلك صدم هذا. لماذا تقول ببساطة "أوه ، نفدت الذاكرة / الموارد - أعطها المزيد من الذاكرة / الموارد" دون فحص السبب؟

مجرد ملاحظة للسجل: الإصلاح المناسب الحالي لم يعمل حتى # 7585 الذي تم إصلاحه # 7544.

قد يكون هناك بعض مشكلات الإذن حاول بدء تشغيل Sudo npm

سيزيد هذا الأمر عدد المراقبين المسموح لهم:
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

شكرا ، هذا حل مشكلتي.

زوار المستقبل وsunnykeshriJimmyBastosBrotherDonkeyCodeMonkeyG، لبلدي التعقل يرجى التوقف عن نشر الحد الساعات الإصلاح.

للزوار المستقبليين ، يعتبر حل

أضف هذا إلى الحزمة الخاصة بك. json:

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

يجب أن تكون هذه هي أفضل إجابة. الناس - من فضلك صدم هذا. لماذا تقول ببساطة "أوه ، نفدت الذاكرة / الموارد - أعطها المزيد من الذاكرة / الموارد" دون فحص السبب؟

زوار المستقبل وsunnykeshriJimmyBastosBrotherDonkeyCodeMonkeyG، لبلدي التعقل يرجى التوقف عن نشر الحد الساعات الإصلاح.

للزوار المستقبليين ، يعتبر حل

أضف هذا إلى الحزمة الخاصة بك. json:

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

يجب أن تكون هذه هي أفضل إجابة. الناس - من فضلك صدم هذا. لماذا تقول ببساطة "أوه ، نفدت الذاكرة / الموارد - أعطها المزيد من الذاكرة / الموارد" دون فحص السبب؟

يحد إنشاء تطبيق React من المفاتيح التي يمكن استخدامها في تكوين حزمة jest - هل وجد أي شخص طريقة لحل هذه المشكلة في تطبيق 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 age 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 @ karsa87igorgoiis ) أنه يجب عليك أولاً تجربة الإصلاح اللاحق إذا قابل للتطبيق ، والذي لم يكن ممكنًا في الأصل بسبب خطأ الدعابة:

للزوار المستقبليين ، يعتبر حل

أضف هذا إلى الحزمة الخاصة بك. json:

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

يجب أن تكون هذه هي أفضل إجابة. الناس - من فضلك صدم هذا. لماذا تقول ببساطة "أوه ، نفدت الذاكرة / الموارد - أعطها المزيد من الذاكرة / الموارد" دون فحص السبب؟

تمكنت من إصلاح هذه المشكلة بـ sudo react-native start

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات