एप्लिकेशन शुरू करते समय `npm start` और` नोड app.js` के बीच अंतर?


188

मैंने कमांड का उपयोग करके एक एप्लिकेशन इंस्टॉल किया है express new 'filename'। मैंने अभी सीखा है कि आप किसी एप्लिकेशन का उपयोग शुरू कर सकते हैं:

npm start

इस प्रकार अब तक मैंने उपयोग किया है:

node app.js

मेरा सर्वर शुरू करने के लिए। किसी को भी पता है कि दोनों के बीच क्या अंतर है? धन्यवाद।

जवाबों:


267

से आदमी पेज , शुरू NPM:

पैकेज की "प्रारंभ" स्क्रिप्ट चलाता है, अगर कोई प्रदान किया गया था। यदि कोई संस्करण निर्दिष्ट नहीं है, तो यह "सक्रिय" संस्करण शुरू करता है।

जाहिर है, यह विवरण पूरी तरह से अनपेक्षित है, और यह सब कहता है। कम से कम यह सॉकेट से अधिक प्रलेखित है।

किसी भी तरह, वास्तव में क्या होता है कि एनपीएम आपके पैकेज में दिखता है। जेसन फ़ाइल, और यदि आपके पास कुछ ऐसा है

"स्क्रिप्ट": {"प्रारंभ": "कॉफी सर्वर। कॉफ़ी"}

तब वह ऐसा करेगा। अगर npm को आपकी आरंभिक स्क्रिप्ट नहीं मिल रही है, तो यह इसके लिए चूक है:

नोड server.js

 


4
ओह समझा। यह अनिवार्य रूप से एक ही बात है जब तक आप संकलन समय पर अधिक स्क्रिप्ट चलाने के लिए नहीं चुनते हैं।
ReneGAED

1
यदि आप सामान्य रूप से "नोड server.js" टाइप करते हैं, तो हाँ।
यूसुफ एक्स

1
मैंने एक नया ऐप बनाया, npm स्टार्ट काम नहीं कर रहा है। पुराने ऐप के लिए यह ठीक चल रहा है। कोई सुझाव?
शिक्षार्थी

1
उदाहरण के लिए "नोड app.js" राउटर में बदलाव नहीं करेगा, जबकि "एनपीएम स्टार्ट" होगा, क्योंकि यह पैकेज.जॉन स्टार्ट स्क्रिप्ट (जैसे "नोड ./bin/www") को निष्पादित करता है
इगोर

1
यदि आप 'npm' से शुरू करते हैं, तो यह कंसोल पर 'rs' लिखकर ऐप को पुनरारंभ कर सकता है।
एल्फ

10

प्रलेखन अद्यतन किया गया है । मेरे उत्तर में पर्याप्त परिवर्तन हैं बनाम स्वीकृत उत्तर: मैं प्रतिबिंबित करना चाहता था कि दस्तावेज़ अद्यतित है, और स्वीकृत उत्तर में कुछ टूटे हुए लिंक हैं।

इसके अलावा, मुझे यह समझ में नहीं आया कि कब स्वीकार किए गए उत्तर ने कहा "यह चूक है node server.js"। मुझे लगता है कि दस्तावेज़ीकरण डिफ़ॉल्ट व्यवहार को स्पष्ट करता है:

NPM शुरू

एक पैकेज शुरू करें

सार

npm start [-- <args>]

विवरण

यह पैकेज के " start" अपने " scripts" ऑब्जेक्ट की संपत्ति में निर्दिष्ट एक मनमाना कमांड चलाता है । यदि कोई " start" गुण " scripts" ऑब्जेक्ट पर निर्दिष्ट है , तो यह चलेगा node server.js

संक्षेप में, दौड़ना npm startदो चीजों में से एक कर सकता है:

  1. npm start {command_name}: एक मनमाना कमांड चलाएं (जैसे कि अगर startपैकेज की संपत्ति में ऐसी कमांड निर्दिष्ट है scripts)
  2. npm start: यदि कोई startसंपत्ति मौजूद नहीं है (या कोई command_nameपास नहीं है): भागो node server.js, (जो उपयुक्त नहीं हो सकता है , उदाहरण के लिए ओपी के पास नहीं है server.js; ओपी चलता है nodeapp.js)
  3. मैंने कहा कि मैं केवल 2 वस्तुओं को सूचीबद्ध करूंगा, लेकिन अन्य संभावनाएं (यानी त्रुटि के मामले) हैं। उदाहरण के लिए, यदि package.jsonआपके द्वारा चलाए जा रहे निर्देशिका में कोई नहीं है npm start, तो आपको एक त्रुटि दिखाई दे सकती है:npm ERR! enoent ENOENT: no such file or directory, open '.\package.json'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.