Nodemon: لا يتم إعادة تشغيل Nodemon في عامل الإرساء

تم إنشاؤها على ١٢ نوفمبر ٢٠١٨  ·  14تعليقات  ·  مصدر: remy/nodemon

  • nodemon -v : 1.18.6 (الأحدث)
  • node -v : 10.13
  • نظام التشغيل / بيئة المحطة:

    • إصدار Docker 18.06.1-ce ، بناء e68fc7a

    • إصدار docker-compose 1.22.0، build f46880f

  • الأمر الذي قمت بتشغيله:

docker-compose.yml :

version: '3.1'

services:
  node:
    image: node:10
    working_dir: /usr/local/src/
    volumes:
      - .:/usr/local/src/
    environment:
      - NODE_ENV=development
    command: bash -c "nodemon --watch src --exec 'node src/server.js'"

تشغيل: docker-compose up

سلوك متوقع

يجب إعادة التشغيل عندما أقوم بتغيير ملف في src/

السلوك الفعلي

لا تعيد التشغيل

خطوات التكاثر

  1. mkdir -p test/src && touch test/docker-compose.yml && touch test/src/server.js
  2. انسخ المحتويات أعلاه إلى docker-compose.yml
  3. تشغيل cd test && docker-compose up
  4. حاول تغيير شيء ما server.js ولاحظ ذلك

الحل المعروف

إذا أضفت العلم -L ، فكل شيء يعمل بشكل رائع! قتل شيء ما في الإصدار الأخير (https://github.com/docker/labs/issues/378)

التعليق الأكثر فائدة

remy يبدو أن هذا عرض من أعراض تغيير nodemon. بعد الترقية ، كان علينا اتباع https://github.com/remy/nodemon#application -isnt- إعادة التشغيل لجعله يعمل في عامل الإرساء.

ال 14 كومينتر

هل هذه قضية nodemon أم عامل ميناء؟

remy يبدو أن هذا عرض من أعراض تغيير nodemon. بعد الترقية ، كان علينا اتباع https://github.com/remy/nodemon#application -isnt- إعادة التشغيل لجعله يعمل في عامل الإرساء.

تم وضع علامة على هذه المشكلة تلقائيًا على أنها خاملة وقديمة لأنها لم يكن بها أي نشاط حديث. سيتم إغلاقها تلقائيًا في حالة عدم حدوث أي نشاط آخر. إذا كنت تعتقد أن هذا خطأ ، أو استمرت المشكلة ، فما عليك سوى إرسال رد في التعليقات و remy سوف (حاول!) للمتابعة.
شكرا لك على المساهمة <3

remy أي أفكار حول هذا؟

فاتك تعليقك. هل أنت قادر على تكرار السلوك المقصود بإصدار سابق من nodemon (مع أحدث عامل عامل)؟ ليس لدي أي خبرة مع عامل الرصيف ، لذا فأنا لا أفهم تمامًا العناصر الداخلية لما يحدث مع عامل الرصيف.

لقد تمكنت من قضاء أكثر من يوم في تصحيح هذه المشكلة ، لذا اسمحوا لي أن أساعد في تقديم ما تعلموه.

بالنسبة لبعض السياق ، لدي خطوة إضافية في عملية البناء الخاصة بي. لدي tsc --watch رمز معالجة يتم تحويله وتجميعه. في السابق مع إصدار سابق من nodemon ، كان لدي هذا النظام يعمل محليًا.

من خلال قدر كبير من التحقيق ، بدأت في ملاحظة أنه بينما لم يتم إعادة تشغيل nodemon ، تم التقاط ملفات البناء المحدثة بنجاح داخل الحاوية نفسها.

كشفت نظرة ثاقبة أخرى أنه إذا قمت بتغيير ملف يدويًا من داخل الحاوية ، فسيتم إعادة تشغيل nodemon كما هو متوقع.

مع هذا حاولت بعد ذلك تشغيل نظام ساعتي من الحاوية نفسها وفويلا ، لقد أعيد تشغيل nodemon بعد التغييرات المحلية مرة أخرى!

لأكون صادقًا تمامًا ، لا أعرف بالضبط سبب تغيير سياق التنفيذ للملف.

لقد حاولت التراجع عن التزامات الإصدارات القليلة الأخيرة من nodemon لمعرفة ما إذا كان ذلك قد أدى إلى حل المشكلة الأصلية وما زلت لا أرى أي تغيير في السلوك.

حدسي هو أن تبعية nodemon التي تتعامل مع ساعة fs قد كسرت الوظيفة الحالية. بطريقة ما في مسار تنفيذ تغيير ملف نظام التشغيل Mac OS -> لا يتم التقاط تغيير رابط حجم الحاوية بواسطة nodemon.

بالنظر إلى أنني لا أعرف ما يكفي عن العناصر الداخلية لـ nodemon ولدي بيئة عمل مرة أخرى ، لم أقم بمزيد من البحث في محاولة معرفة التبعية التي يمكن إلقاء اللوم عليها هنا.

السؤال الأساسي (الذي سأضيفه إلى نموذج المشكلة الخاص بي): ما هي صورة عامل الإرساء التي تستخدمها؟

أعتقد أن هذا مخادع للرقم # 1484 وأعتقد أنك تستخدم Alpine ، لذلك سيتم إصلاحه بمجرد دفع الإصلاح ...

الإصلاح المباشر في [email protected] (التغيير الأساسي في pstree.remy ... مرة أخرى).

تم إصلاح هذه المشكلة leifdejong أنها تعمل! فقط قم بتغيير البعض في docker-compose.yml

الأمر nodemon index.js
الأمر nodemon -L index.js

نجح هذا بالنسبة لي (إضافة inotify-tools إلى Dockerfile الخاص بي): https://stackoverflow.com/a/46804953/2397773

لقد أصلحت أيضًا نفس المشكلة التي واجهتها مع عدم إعادة تحميل webpack-dev-server .

تم إصلاح هذه المشكلة leifdejong أنها تعمل! فقط قم بتغيير البعض في docker-compose.yml

الأمر nodemon index.js
الأمر nodemon -L index.js

شكرا جزيلا لك هذا العمل بالنسبة لي

تم إصلاح هذه المشكلة leifdejong أنها تعمل! فقط قم بتغيير البعض في docker-compose.yml

الأمر nodemon index.js
الأمر nodemon -L index.js

شكرا لعملك لي.

تم إصلاح هذه المشكلة leifdejong أنها تعمل! فقط قم بتغيير البعض في docker-compose.yml

الأمر nodemon index.js
الأمر nodemon -L index.js

شكرا لك.

بالنسبة لي حتى استخدام العلم -L لا يعمل. أنا أستخدم صورة عقدة كصورة أساسية وعند تثبيت nodemon داخل الحاوية ، فإنه يعطي التحذير التالي.

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.1.2 (node_modules/nodemon/node_modules/chokidar/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

أعتقد أن chokidar و fsevents مرتبطان بإعادة تشغيل nodemon. أي اقتراحات كيفية الإصلاح؟

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