के बीच व्यावहारिक अंतर क्या है npm install
और केnpm update
? मुझे कब उपयोग करना चाहिए?
के बीच व्यावहारिक अंतर क्या है npm install
और केnpm update
? मुझे कब उपयोग करना चाहिए?
जवाबों:
के बीच अंतर NPM स्थापित और NPM अद्यतन पैकेज संस्करणों में निर्दिष्ट की हैंडलिंग package.json :
{
"name": "my-project",
"version": "1.0", // install update
"dependencies": { // ------------------
"already-installed-versionless-module": "*", // ignores "1.0" -> "1.1"
"already-installed-semver-module": "^1.4.3" // ignores "1.4.3" -> "1.5.2"
"already-installed-versioned-module": "3.4.1" // ignores ignores
"not-yet-installed-versionless-module": "*", // installs installs
"not-yet-installed-semver-module": "^4.2.1" // installs installs
"not-yet-installed-versioned-module": "2.7.8" // installs installs
}
}
सारांश : केवल एक बड़ा अंतर यह है कि फजी संस्करण के साथ पहले से ही स्थापित मॉड्यूल ...
npm install
npm update
अतिरिक्त रूप से : डिफ़ॉल्ट रूप से install
और update
अलग-अलग तरीके से निर्भरता को संभालते हैं
npm install
होगा / अद्यतन को स्थापित devDependencies जब तक --production
झंडा जोड़ा जाता हैnpm update
होगा उपेक्षा devDependencies जब तक --dev
झंडा जोड़ा जाता हैआखिर क्यों इस्तेमाल करें npm install
?
क्योंकि npm install
अधिक तब होता है जब आप अपनी निर्भरता को संभालने के अलावा देखते हैं package.json
। जैसा कि आप npm स्थापित में देख सकते हैं ...
PATH
उपयोग में डालता है )npm install -g <name>
--force
npm install --save somePackage
* निर्भरता को बचाने के लिए?
postinstall
इंस्टॉल पर चलती हैं, लेकिन अपडेट पर नहीं।
install
और update
Git यूआरएल, Git टैग, इत्यादि में निर्दिष्ट स्थान पर अलग ढंग से काम package.json
तो यह उदाहरण के लिए उन मामलों को जोड़ने के लिए बहुत अच्छा होगा।
1.3.0 -> 1.3.1
यह इसके समान है ^1.3.0
, जहां ^
अपडेट प्रमुख संस्करण, यानी 1.3.0 -> 1.4.0
।
npm स्थापित उन सभी मॉड्यूल को स्थापित करता है जो package.json
फ़ाइल और उनकी निर्भरता पर सूचीबद्ध होते हैं ।
npm अद्यतनnode_modules
निर्देशिका और उनकी निर्भरता में सभी संकुल अद्यतन करता है।
एनपीएम इंस्टॉल एक्सप्रेस केवल एक्सप्रेस मॉड्यूल और इसकी निर्भरता स्थापित करता है।
npm अपडेट एक्सप्रेस अपडेट एक्सप्रेस एक्सप्रेस मॉड्यूल (npm@2.x से शुरू होकर, यह इसकी निर्भरता को अपडेट नहीं करता है)।
इसलिए अपडेट तब है जब आपके पास पहले से ही मॉड्यूल है और नया संस्करण प्राप्त करना चाहते हैं।
npm install
या npm update
? या, दूसरे शब्दों में, मैं अब उपयोग कर रहा हूं npm install
और यह अद्यतन करने के लिए भी लगता है, क्या कोई कारण है कि मुझे कभी क्यों उपयोग करना चाहिए npm update
?
update
हमेशा पैकेज.जॉसन की परवाह किए बिना, नवीनतम संस्करण में अपडेट होगा, जबकि install
पैकेज.जॉन में दिए गए संस्करण का सम्मान करेगा?
update
मॉड्यूल का नवीनतम संस्करण इंस्टॉल (या अपडेट) करता है। install
मॉड्यूल के नवीनतम संस्करण को स्थापित करता है यदि इसे प्रस्तुत नहीं किया गया है तो वर्तमान संस्करण रहता है।
npm update
आपके पैकेज के आधार पर नवीनतम संस्करण में अपडेट होगा। इसे ध्यान दिए बिना। यदि आपके पास "एक्सप्रेस": "3.x" है और आप संस्करण 3.1.0 पर हैं, तो यह नवीनतम 3.x टैग में अपडेट हो जाएगा। यदि 4.x संस्करण है, तो यह नवीनतम स्थापित नहीं करेगा।
ज्यादातर मामलों में, यह npm पर प्रकाशित मॉड्यूल के नवीनतम संस्करण को स्थापित करेगा।
npm install express --save
या नवीनतम संस्करण उपयोग के लिए मॉड्यूल को उन्नत करने के लिए बेहतर:
npm install express@latest --save --force
--save
: पैकेज आपकी निर्भरता में दिखाई देगा।
अधिक जानकारी: npm-install
npm install express@latest --save --force
जैसा मैं चाहता था वैसा ही हुआ।
कई भेदों का उल्लेख पहले ही किया जा चुका है। यहाँ एक और है:
चल रहा है npm install
अपने स्रोत निर्देशिका के शीर्ष पर विभिन्न लिपियों चलेंगे: prepublish
, preinstall
, install
, postinstall
। ये स्क्रिप्ट क्या करते हैं, इस पर निर्भर करते हुए, npm install
केवल निर्भरता स्थापित करने की तुलना में काफी अधिक काम किया जा सकता है।
मेरे पास सिर्फ एक उपयोग का मामला है जहां prepublish
कॉल make
किया Makefile
गया था और अगर package.json
अपडेट हुआ तो निर्भरता लाने के लिए डिज़ाइन किया गया था । npm install
भीतर से कॉल Makefile
करने पर अनंत पुनरावृत्ति हो सकती है, जबकि कॉलिंग npm update
ने ठीक काम किया, सभी निर्भरताएं स्थापित कीं ताकि निर्माण को आगे बढ़ाया जा सके, भले ही make
इसे सीधे कहा जाए।
redis
मॉड्यूल, और other_module
पुराने संस्करण की आवश्यकता है redis
, npm install other_module
तो गारंटी other_module
होगी कि पुराने संस्करण का उपयोग करेगा। other_module/node_modules/redis
यदि आवश्यक हो तो इसे जोड़ सकते हैं ।
npm update
: नवीनतम नोड मॉड्यूल के साथ स्थापित और अद्यतन करें जो पैकेज में हैं
npm install
: नोड मॉड्यूल स्थापित करें जो पैकेज में परिभाषित किए गए हैं। संदेश (अपडेट के बिना)
npm update
बड़ी संख्या में निर्भरता को छोड़ देगा package-lock.json
। सभी आवश्यक पैकेज उपलब्ध हैं और package-lock.json
सही होने के लिए, मुझे हमेशा npm install
सही निष्पादन करना होगा npm update
।
~1.3
?