ফাইল পরিবর্তন করার পরে নোড পুনরায় চালু করুন


172

যে কোনও ব্যক্তি পিএইচপি ব্যাকগ্রাউন্ড থেকে নোড হত্যার প্রক্রিয়া এবং প্রতিটি কোড পরিবর্তনের পরে এটি আবার শুরু করার প্রক্রিয়াটি খুব ক্লান্তিকর বলে মনে হয়। কোড পরিবর্তনটি সংরক্ষণ করা হলে নোডটি স্বয়ংক্রিয়ভাবে পুনঃসূচনা করতে নোডের সাথে কোনও স্ক্রিপ্ট শুরু করার সময় কোনও পতাকা রয়েছে?

উত্তর:


94

চিরদিনের মডিউলটিতে একাধিক নোড.জেএস সার্ভারের ধারণা রয়েছে এবং বর্তমানে চলমান সার্ভারগুলি শুরু করতে, পুনরায় চালু করতে, থামাতে এবং তালিকাভুক্ত করতে পারে। এটি ফাইলগুলি পরিবর্তন করার জন্য এবং প্রয়োজনীয় নোড পুনরায় আরম্ভ করার জন্যও দেখতে পারে।

আপনার যদি এটি ইতিমধ্যে না থাকে তবে এটি ইনস্টল করুন:

npm install forever -g

এটি ইনস্টল করার পরে, foreverকমান্ডটি কল করুন : -wপরিবর্তনের জন্য ফাইলটি দেখতে পতাকা ব্যবহার করুন :

forever -w ./my-script.js

এছাড়াও, আপনি ডিরেক্টরি দেখতে এবং নিদর্শন উপেক্ষা করতে পারেন:

forever --watch --watchDirectory ./path/to/dir --watchIgnore *.log ./start/file

বিকাশ / পরীক্ষা এবং উত্পাদন উভয়ের জন্য চিরকালের জন্য +1 বেশ বহুমুখী।
— স্মার্টরিওস

1
আমি এই কমান্ডটি দিয়ে আমার ES2015 Expess.js / ওয়েবপ্যাক সার্ভারটি পুনরায় আরম্ভ করার জন্য চিরতরে ব্যবহার করার চেষ্টা করেছি forever -c babel-node -w --watchDirectory ./server ./server/index.js তবে দুঃখের সাথে মনে হয় এটি চিরকালের জন্য একটি টেলস্পিনে প্রেরণ করা হয়েছে এবং এটি সার্ভারটি প্রায়শই পুনঃসূচনা করে, ফলস্বরূপ পোর্ট ইতিমধ্যে ব্যবহারের ত্রুটিগুলির মধ্যে রয়েছে ... এখানে কোনওভাবে আছে পুনরায় চালু করার পরে একটি বিরতি যুক্ত করবেন?
— ব্রায়ান ডি পালমা

1
@ ব্রায়ানডিপাল্মা যদি আপনার ঘড়ির ডিরেক্টরিতে লগের মতো কোনও পরিবর্তনযোগ্য ফাইল থাকে তবে আপনার সম্ভবত কিছু উপেক্ষা করার ধরণ যুক্ত করা উচিত। আপনি পুনঃসূচনাগুলির মধ্যে কোনও বিলম্ব সংজ্ঞায়িত করতে পারেন কিনা তা দেখতে ডক্সটি পরীক্ষা করুন।
— হাইড

1
@ হায়ড এটি যে বিলম্বের প্রয়োজন ছিল না এটি প্রয়োজনীয় বিকল্প -tবা killTreeবিকল্প ছিল বলে আমার ধারণা, বাবেল-নোড মারা যাচ্ছিল তবে এটি যে এক্সপ্রেস সার্ভার তৈরি করেছিল তা নয়।
— ব্রায়ান ডি পালমা

2
উইন্ডোতে ফোরএভার জেএসের একটি বাগ রয়েছে যা স্ক্রিপ্টটি বন্ধ হয়ে গেলে নোড প্রক্রিয়াটিকে হত্যা করে না। ম্যানুয়ালি নোড প্রক্রিয়া :( বধ আছে stackoverflow.com/questions/14556852/...
— pmont

157

একটি ভাল বিকল্প নোড-সুপারভাইজার এবং নোড.জেএস ফাইল পরিবর্তনতে পুনঃসূচনা হ'ল এটি কীভাবে ব্যবহার করা যায় সে সম্পর্কে ভাল নিবন্ধ is

 npm install supervisor -g

এবং আপনার অ্যাপ্লিকেশনটির মূলে যাওয়ার পরে নিম্নলিখিতটি ব্যবহার করুন

 supervisor app.js

এখানে একই কারণ, যাই হোক না কেন আমি কোনও সমস্যা ছাড়াই আগে নোডমন ব্যবহার করেছি।
— জেনমাস্টার

1
আমার জন্যও কাজ করেছেন। আমাকে ডিফল্ট ওয়াইল্ডকার্ড ওয়াচ প্যারামিটারটি ওভাররাইড করতে server.jsহয়েছিল কারণ এটি ক্রমাগত পুনরায় চালু হচ্ছিল, এটি আমার সার্ভারটি ক্লায়েন্টকে বুটে তৈরি করার কারণে এবং ফাইলগুলি পরিবর্তন করার কারণে হয়েছিল। supervisor --watch server.js server.jsএটি সমাধান করুন।
— স্কিপাইলট

2
নোড-সুপারভাইজার আর রক্ষণাবেক্ষণ করা হয় না।
— aleung

একটি যাদুমন্ত্র মত কাজ করে!!
— জে রিচার্ডস্জ

আমার প্রিয় এক, রিফ্রেশ অন্তরগুলি ফাইল সংশোধন করা হয়েছে কিনা তা প্রায় তাত্ক্ষণিক কিনা তা পরীক্ষা করতে!
— নিকক নিউম্যান

100

আপনার নোডেমনের মতো কিছু করা উচিত ।

নোডেমন সেই ডিরেক্টরিতে ফাইলগুলি নোডমন শুরু করবে এবং সেগুলি পরিবর্তিত হলে এটি স্বয়ংক্রিয়ভাবে আপনার নোড অ্যাপ্লিকেশনটি পুনরায় আরম্ভ করবে।

উদাহরণ:

nodemon ./server.js localhost 8080

বা সহজভাবে

nodemon server

কোড পরিবর্তনগুলি বাস্তবায়নের জন্য নোডের পুনঃসূচনা কেন প্রয়োজন তার কোনও ধারণা? এবং অন্যান্য সার্ভারগুলিকে (যেমন অ্যাপাচি / পিএইচপি) পুনরায় চালু করার দরকার নেই কেন?
— ম্যাভেরিক

2
@ dk49 কারণ এই ক্ষেত্রে পিএইচপি স্ক্রিপ্টগুলি প্রতিটি আগত অনুরোধের জন্য শুরু করা হয় এবং পৃষ্ঠাটি তৈরি করার পরে তা বন্ধ হয়ে যায়।
— দায়েরডেম্যান্ড

@ ডেয়ারডেম্যান্ড শেয়ার করার জন্য ধন্যবাদ..কিন্তু আমি এখনও পাইনি কেন সার্ভারটি (কোনও প্ল্যাটফর্মে) শুরু করা এবং থামানো দরকার? এটি ফাইলের প্রতিক্রিয়া (প্রতিক্রিয়া) বজায় রাখার কারণে এটি? আমি ভেবেছিলাম যে অনুরোধের সময় সার্ভারটি ডিস্ক থেকে ফাইলগুলি লোড করবে, এটি প্রক্রিয়া করবে এবং তারপরে প্রতিক্রিয়াটি পাঠাবে। আমি সার্ভার-সাইড প্রোগ্রামিংয়ে নতুন।
— ম্যাভেরিক

আপনি / আপনি উত্পাদন পরিবেশে নোডমন ব্যবহার করা উচিত?
— জোটাইদি

1
নোডেমন আজও কীভাবে ধরে আছে তা নিশ্চিত নয় (যেমন এটি ২০১২ সালে এসেছিল) তবে সুরক্ষার কারণে আমি নিশ্চিত নই যে আমি যখনই কোনও ফাইল পরিবর্তন করি তখন আমার সার্ভারটি প্রোডের সাথে পুনরায় চালু করতে চাই। উত্পাদনের পরিবেশের জন্য বেলা 2 এর মতো কিছু আরও উপযুক্ত হতে পারে।
— মেনজট্রুয়াল

43

এই কাজটি সহজ করার জন্য বিভিন্ন এনপিএম প্যাকেজ উপলব্ধ।

উন্নয়নের জন্য

  • নোডমন : সর্বাধিক জনপ্রিয় এবং সক্রিয়ভাবে রক্ষণাবেক্ষণ করা
  • চিরকাল : দ্বিতীয়-জনপ্রিয়
  • নোড-দেব : মে 2019 এর পরে কোনও কমিট করে না
  • সুপারভাইজার : - আর রক্ষণাবেক্ষণ করা হয় না

উত্পাদনের জন্য (ক্লাস্টারিং, রিমোট মোতায়েনের মতো বর্ধিত কার্যকারিতা সহ)

সব সময় প্রবেশ করুন মধ্যে তুলনা, pm2 এবং StrongLoop পাওয়া যাবে StrongLoop এর ওয়েবসাইট।


3
@ 2019 নোডেমন 4 টি উন্নয়ন-বিকল্পগুলির মধ্যে কেবলমাত্র এখনও বজায় রয়েছে বলে মনে হয়।
— mvermand

1
@ এমভারমান্ড হ্যাঁ, সম্প্রতি নোডেমন ছাড়া তাদের কোনওটির জন্যই নতুন প্রকাশ প্রকাশ করা হয়নি। উত্পাদন জন্য, PM2 এখনও ভাল রক্ষণাবেক্ষণ করা হয়।
— কেই

16

আপনি নোডমনও চেষ্টা করতে পারেন

নোডেমন ইনস্টল করতে

npm install -g nodemon

নোডেমন ব্যবহার করার জন্য

সাধারণত আমরা নোড প্রোগ্রামটি শুরু করি যেমন:

node server.js

তবে এখানে আপনাকে পছন্দ করতে হবে:

nodemon server.js

ভাল এবং সহজ aswer !!
— 26:16

1
নোডমনের বিরক্তিকর বাগ রয়েছে। এটা আমার জন্য একটি সময় অপচয় ছিল।
— কেটা

এই উত্তরটি কীভাবে 2012 নোডমনের উত্তর থেকে আলাদা ?
— ড্যান ড্যাসকলেসকু

9

নোড-দেব

নোড-দেব হ'ল ডেভেলপারদের জন্য নোডমন এবং সুপারভাইজার উভয়েরই দুর্দান্ত বিকল্প, যখনই সার্ভারটি পুনরায় চালু হয় বা যখন ফাইলটিতে ত্রুটি বা পরিবর্তন ঘটে থাকে তখন তাদের ডেস্কটপে গ্রোয়েল (বা libnotify) বিজ্ঞপ্তি পেতে চান ।

স্থাপন:

npm install -g node-dev

নোডের পরিবর্তে নোড-ডেভ ব্যবহার করুন:

node-dev app.js

ফাইল পরিবর্তন করার বিষয়ে বিজ্ঞপ্তি যাতে সার্ভারটি স্বয়ংক্রিয়ভাবে শুরু হয়

এখানে চিত্র বর্ণনা লিখুন

কনসোল আউট পুট

এখানে চিত্র বর্ণনা লিখুন


3

আমি runjsযেমন ব্যবহার করি :

runjs example.js

প্যাকেজটিকে ন্যায়সঙ্গত বলা হয় run

npm install -g run

2
এটি আরও ভাল নয়, কেবল অন্য বিকল্প
— sp2danny

আপনি কেন ব্যবহার করছেন runএবং বিদ্যমান বিকল্পগুলির সাথে এটি কীভাবে তুলনা করে তা যদি ব্যাখ্যা করা হয় তবে এই উত্তরটি আরও মূল্যবান হবে । কেবলমাত্র অন্য বিকল্প ডাম্পিং করা কেবল পছন্দের প্যারাডক্সে অবদান রাখে। (ভাগ্যক্রমে run2015 সালের পরে আপডেট করা হয়নি, সুতরাং এখন এটি কোনও বিকল্পের খুব বেশি কিছু নয়))
— ড্যান ড্যাসকলেসকু

0

পদক্ষেপগুলো অনুসরণ কর:

  1. npm install --save-dev nodemon

  2. প্যাকেজ.জসনের "স্ক্রিপ্ট" বিভাগে নিম্নলিখিত দুটি লাইন যুক্ত করুন:

"start": "node ./bin/www",
"devstart": "nodemon ./bin/www"

নিচে দেখানো হয়েছে:

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node ./bin/www",
    "devstart": "nodemon ./bin/www"
}
  1. npm run devstart

https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/skeleton_website


ঠিক আছে, এটি মূলত ২০১২ সালের মতো একই উত্তর , তবে এর চারপাশে আরও "জাদু" রয়েছে। কিন্তু সারাংশ উত্তর "ব্যবহার nodemon" হয়। রিসেটটি স্পর্শকাতর। এবং এটি খারাপভাবে ফর্ম্যাট করা হয়েছিল, তবে আমি দেখতে পাচ্ছি যে ডেভিড এটি স্থির করেছে, তাই আমি আমার ডাউনটি বাতিল করব।
— ড্যান ড্যাসক্লেস্কু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.