مرحبا،
هل هناك أي طريقة لاستخدام nodemon مع نص البداية npm؟
حاولت:
$ nodemon -x npm start
و
$ nodemon -x "npm start"
وأيضًا فقط nodemon
بمفرده ، لكني أحصل على حوار المساعدة بدون أخطاء.
ألا تفضل وضع
"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"
}
التعليق الأكثر فائدة
كان هذا هو الحل:
سيكتشف Nodemon تلقائيًا أي أخطاء في eslint ثم يعيد تشغيل التغييرات.