Nodemon: دعم البرنامج النصي لبدء npm

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

مرحبا،

هل هناك أي طريقة لاستخدام nodemon مع نص البداية npm؟

حاولت:

$ nodemon -x npm start

و

$ nodemon -x "npm start"

وأيضًا فقط nodemon بمفرده ، لكني أحصل على حوار المساعدة بدون أخطاء.

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

كان هذا هو الحل:

"scripts": {
    "prestart": "eslint .",
    "start": "node app",
    "dev": "nodemon --exec npm start"
  },

سيكتشف Nodemon تلقائيًا أي أخطاء في eslint ثم يعيد تشغيل التغييرات.

ال 14 كومينتر

ألا تفضل وضع

"scripts": {
  "start": "nodemon app"
}

في package.json الخاص بك واستدعها بـ npm start .
هذا يعني بالطبع أنه سيتعين عليك تمرير ما هو موجود في هدفك start حاليًا إلى nodemon ، لكن هذه مشكلة مختلفة.

لست من أشد المعجبين بذلك ، حيث أنني أستخدم نفس البرنامج النصي في بيئات التطوير والإنتاج.

يتحقق nodemon مما إذا كان "app.js" الذي تريد تشغيله موجودًا كملف. لذا من أجل تشغيل nodemon -x npm start ، أنشئ ملفًا باسم "start". واجهت مشكلة ، عندما لم يتمكن nodemon من إنهاء العملية لتحرير مقبس الخادم في الوقت المناسب.
حاولت ، ونفس الشيء يحدث مع حزمة "المشرف".

إذا كانت معلمات البداية معقدة ، فلماذا لا تدمجها في برنامج نصي .js خاص بهم؟

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

أرغب أيضًا في استخدام nodemon لتشغيل $ npm start لأنني أريده أيضًا تشغيل البرنامج النصي الذي تم إنشاؤه مسبقًا والذي يعمل على تنسيق مشروعي.

مثال:

// package.json snippet
"scripts": {
    "prestart": "eslint index.js",
    "start": "node index.js"
}

إذا قمت بتشغيل $ npm start ، فسيتم تشغيله أولاً $ npm prestart .
أريد أن أفعل ذلك بطريقة ما باستخدام nodemon بحيث لا يعمل فقط على نص البداية ولكن أيضًا على البرنامج النصي قبل التشغيل.

أيه أفكار؟

لا يتم دعم الخطافات السابقة واللاحقة لـ npm. سيكون الحل هنا هو تغيير قيمة start إلى nodemon index.js .

لن يعمل ذلك تمامًا بالنسبة لي ب / ج لقد استخدمت npm في بدء الإنتاج.

لكن ذلك أشعل شرارة المصباح الكهربائي. يمكنني فعل شيء مثل هذا:

"prestart": "eslint .",
    "start": "node index.js",
    "predev": "eslint .",
    "dev": "nodemon index.js"
}

ثم سيعمل $ npm start للمنتج و $ npm run dev سيعمل من أجل التطوير.

بويا!

شكرا لمساعدتك.

حماقة لقد تحدثت في وقت مبكر جدا. يتم تشغيل البرنامج النصي predev عند الإطلاق الأولي فقط. تغييرات الملف اللاحقة فقط قم بتشغيل nodemon مرة أخرى وليس البرنامج النصي predev npm.

كان هذا هو الحل:

"scripts": {
    "prestart": "eslint .",
    "start": "node app",
    "dev": "nodemon --exec npm start"
  },

سيكتشف Nodemon تلقائيًا أي أخطاء في eslint ثم يعيد تشغيل التغييرات.

nathanhleung هل هذا يعني أن eslint ستعمل حتى في الإنتاج عبر "npm start" بدلاً من "npm dev"؟

VictorioBerra نعم ، لأن الخطاف المسبق سيعمل على eslint. ومع ذلك ، لن يتم تشغيل eslint إلا مرة واحدة إذا قمت باستدعاء npm start مباشرةً (باستخدام التكوين السابق ذكره).

بدلاً من ذلك ، يمكنك تجربة هذا الأسلوب:

"scripts": {
    "predev": "eslint .",
    "dev": "npm start",
    "start": "node app",
    "nodemon": "nodemon --exec npm dev"
  },

يمكنك تشغيل npm run nodemon لفحص التغييرات ، و npm start مباشرة لتشغيل الخادم بدون فحص.

nathanhleung كنت بحاجة لإضافة run إلى npm dev مقابل npm run dev

هل هناك خطافات يمكننا وضعها في nodemon.json بدلاً من البرامج النصية npm؟

تعمل بداية npm التالية بشكل جيد بالنسبة لي

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon ./server.js localhost 8080"
  }
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

Exeteres picture Exeteres  ·  4تعليقات

remy picture remy  ·  5تعليقات

ehmicky picture ehmicky  ·  4تعليقات

hkeio picture hkeio  ·  3تعليقات

medoix picture medoix  ·  4تعليقات