javascript - Npx और npm के बीच अंतर?




(5)

मैंने अभी-अभी लर्निंग रिएक्ट शुरू किया है और फेसबुक निम्नलिखित तैयार किए गए प्रोजेक्ट को प्रदान करके शुरुआती सेटअप को आसान बनाने में मदद करता है।
Github पर फेसबुक अकाउंट से लिंक करें: https://github.com/facebook/create-react-app
अगर मुझे कंकाल परियोजना स्थापित करनी है तो मुझे कमांड लाइन में npx create-react-app my-app टाइप करना होगा।
मैं सोच रहा था कि Github में facebook अकाउंट के पास npx create-react-app my-app बजाय npx create-react-app my-app npm create-react-app my-app क्यों है?


Answers

npx स्पष्ट रूप से स्थापित किए बिना एक पैकेज की एक कमांड चलाता है।

बक्सों का इस्तेमाल करें:

  • आप न तो विश्व स्तर पर और न ही स्थानीय स्तर पर पैकेज स्थापित करना चाहते हैं।
  • आपके पास इसे विश्व स्तर पर स्थापित करने की अनुमति नहीं है।
  • बस कुछ कमांड का परीक्षण करना चाहते हैं।

वाक्य - विन्यास:

npx [options] [-p|--package <package>] <command> [command-arg]...

उदाहरण के लिए:

Start a HTTP Server      : npx http-server
Lint code                : npx eslint ./src
Minify JS                : npx -p uglify-js uglifyjs -o app.min.js app.js common.js
Minify CSS               : npx clean-css-cli -o style.min.css css/bootstrap.css style.css
Minify HTML              : npx html-minifier index-2.html -o index.html --remove-comments --collapse-whitespace
Scan for open ports      : npx evilscan 192.168.1.10 --port=10-9999
Cast video to Chromecast : npx castnow http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerFun.mp4

NPX:

https://www.futurehosting.com/blog/npx-makes-life-easier-for-node-developers-plus-node-vulnerability-news/ :

वेब डेवलपर्स के पास अपने विकास मशीनों पर दर्जनों परियोजनाएं हो सकती हैं, और प्रत्येक परियोजना के पास npm स्थापित निर्भरताओं का अपना विशेष सेट है। कुछ साल पहले, ग्रंट या गुल्प जैसे सीएलआई अनुप्रयोगों से निपटने की सामान्य सलाह उन्हें प्रत्येक परियोजना में स्थानीय स्तर पर और विश्व स्तर पर स्थापित करने की थी ताकि उन्हें आसानी से कमांड लाइन से चलाया जा सके।

लेकिन विश्व स्तर पर स्थापित करने के कारण जितनी समस्याएं हल हुईं। परियोजनाएं कमांड लाइन टूल के विभिन्न संस्करणों पर निर्भर हो सकती हैं, और बहुत सारे विकास-विशिष्ट सीएलआई टूल के साथ ऑपरेटिंग सिस्टम को प्रदूषित करना महान नहीं है। आज, अधिकांश डेवलपर्स स्थानीय रूप से उपकरण स्थापित करना पसंद करते हैं और इसे उसी पर छोड़ देते हैं।

उपकरणों के स्थानीय संस्करण डेवलपर्स को गिटहब से परियोजनाओं को खींचने की अनुमति देते हैं, उपकरण के वैश्विक रूप से स्थापित संस्करणों के साथ असंगतियों के बारे में चिंता किए बिना। एनपीएम केवल स्थानीय संस्करण स्थापित कर सकता है और आप जाने के लिए अच्छे हैं। लेकिन प्रोजेक्ट विशिष्ट इंस्टॉलेशन उनकी समस्याओं के बिना नहीं हैं: आप प्रोजेक्ट में इसकी सही स्थिति को निर्दिष्ट किए बिना या एलियास के साथ खेलने के बिना टूल के सही संस्करण को कैसे चलाते हैं?

यही समस्या है npx हल। NPM 5.2 में शामिल एक नया टूल, npx एक छोटी सी उपयोगिता है जो एक प्रोजेक्ट के भीतर से कॉल करने पर सही एप्लिकेशन को चलाने के लिए पर्याप्त स्मार्ट है।

यदि आप mocha के प्रोजेक्ट-स्थानीय संस्करण को चलाना चाहते हैं, उदाहरण के लिए, आप प्रोजेक्ट के अंदर npx mocha चला सकते हैं और यह वही करेगा जो आप अपेक्षा करते हैं।

Npx का एक उपयोगी पक्ष लाभ यह है कि यह npm संकुल को स्वचालित रूप से स्थापित करेगा जो पहले से स्थापित नहीं है। इसलिए, जैसा कि टूल के निर्माता कैट मार्चैन बताते हैं, आप वैश्विक वातावरण को प्रदूषित करने वाले बेनी हिल से निपटने के लिए बिना npx बेनी-हिल चला सकते हैं।

यदि आप स्पिन के लिए npx लेना चाहते हैं, तो npm के सबसे हाल के संस्करण में अपडेट करें।


npx एक npm पैकेज रनर है (x शायद eXecute के लिए खड़ा है)। विशिष्ट उपयोग अस्थायी रूप से या परीक्षण के लिए एक पैकेज को डाउनलोड करने और चलाने के लिए है।

create-react-app एक npm पैकेज है जो किसी प्रोजेक्ट के जीवनचक्र में केवल एक बार चलने की उम्मीद है। इसलिए, इसे एक ही चरण में स्थापित करने और चलाने के लिए npx का उपयोग करना पसंद किया जाता है।

जैसा कि मैन पेज https://www.npmjs.com/package/npx में बताया गया है, npx डिफ़ॉल्ट रूप से PATH में या node_modules / .bin से कमांड चला सकता है।

नोट: कुछ खुदाई के साथ, हम पा सकते हैं कि जावास्क्रिप्ट-फ़ाइल (संभवतः /usr/lib/node_modules/create-react-app/index.js पर लिनक्स सिस्टम पर नोड-एनवायरनमेंट के भीतर निष्पादित होने वाले एप्लिकेशन-रिएक्शन-ऐप पॉइंट्स । यह केवल एक वैश्विक उपकरण है जो कुछ जांच करता है। वास्तविक सेटअप प्रतिक्रिया-लिपियों द्वारा किया जाता है, जिसका नवीनतम संस्करण परियोजना में स्थापित किया गया है। अधिक जानकारी के लिए https://github.com/facebook/create-react-app देखें।


पेश है npx: एक npm पैकेज रनर

NPM - पैकेज का प्रबंधन करता है, लेकिन जीवन को आसान नहीं बनाता है।
NPX - नोड पैकेज निष्पादित करने के लिए एक उपकरण।

NPX NPM संस्करण 5.2+ साथ बंडल में आता है

NPM अपने आप में कोई पैकेज नहीं चलाता है। यह किसी भी तथ्य के मामले में कोई पैकेज नहीं चलाता है। यदि आप NPM का उपयोग करके एक पैकेज चलाना चाहते हैं, तो आपको उस पैकेज को अपने package.json फ़ाइल में निर्दिष्ट करना होगा।

जब निष्पादनों को npm संकुल के माध्यम से संस्थापित किया जाता है, तो npm उनके लिए लिंक:

  1. स्थानीय संस्थापनों में, वे एक node_modules/.bin/ निर्देशिका से जुड़े होते हैं।
  2. वैश्विक इंस्टॉल में, वे एक वैश्विक बिन / निर्देशिका (जैसे /usr/local/bin ) से जुड़े हुए हैं।

प्रलेखन आपको पढ़ना चाहिए

NPM:

एक निश्चित परियोजना पर स्थानीय रूप से एक पैकेज स्थापित कर सकता है:

npm install some-package

अब मान लें कि आप चाहते हैं कि NodeJS कमांड लाइन से उस पैकेज को निष्पादित करें:

$ some-package

उपरोक्त विफल हो जाएगा क्योंकि केवल विश्व स्तर पर स्थापित पैकेज केवल अपना नाम लिखकर और दर्ज कुंजी दबाकर निष्पादित किया जा सकता है।

इसे ठीक करने के लिए, और इसे चलाने के लिए, आपको स्थानीय पथ टाइप करना होगा:

$ ./node_modules/.bin/some-package

आप तकनीकी रूप से अपने packages.json को संपादित करके स्थानीय रूप से स्थापित पैकेज को चला सकते packages.json फ़ाइल को scripts अनुभाग में जोड़कर उस पैकेज को जोड़ें:

{
  "name": "whatever",
  "version": "1.0.0",
  "scripts": {
    "some-package": "some-package"
  }
}

फिर npm run-script (या npm run ) का उपयोग करके npm run-script npm run :

npm run some-package

NPX:

npx जाँच करेगा कि क्या <command> $PATH , या स्थानीय प्रोजेक्ट बायनेरिज़ में मौजूद है, और इसे निष्पादित करें। इसलिए, उपरोक्त उदाहरण के लिए, यदि आप स्थानीय रूप से स्थापित पैकेज को क्रियान्वित करना चाहते हैं तो some-package जो आपको करने की ज़रूरत है वह है प्रकार:

npx some-package

npx का एक और प्रमुख लाभ एक पैकेज को निष्पादित करने की क्षमता है जो पहले स्थापित नहीं था:

$ npx create-react-app my-app

उपरोक्त उदाहरण कमांड के द्वारा चलाए गए पथ के भीतर एक react ऐप बॉयलरप्लेट उत्पन्न करेगा, और यह सुनिश्चित करता है कि आप हमेशा जनरेटर या बिल्ड टूल के नवीनतम संस्करण का उपयोग किए बिना हर बार अपग्रेड करने के लिए इसे बनाने के लिए उपयोग किए बिना।

संबंधित सवाल:

  1. नोड_मॉड्यूल्स में स्थानीय रूप से स्थापित पैकेज का उपयोग कैसे करें?
  2. एनपीएम: कैसे स्रोत ./ode_modules/.bin फ़ोल्डर?
  3. आप npm स्क्रिप्ट का उपयोग करके js फ़ाइल कैसे चलाते हैं?

एनपीएम 5 के रूप में, एनपीएम अब डिफ़ॉल्ट रूप से बचाएगा। यदि आप पिछले संस्करणों में काम करने के तरीके के बारे में एक समान पुराने फैशन (कोई ऑटोओव) में काम करने के लिए एनपीएम करना चाहते हैं, तो आप नीचे दिए गए ऑटोओव को सक्षम करने के लिए कॉन्फ़िगरेशन विकल्प अपडेट कर सकते हैं।

npm config set save false

वर्तमान सेटिंग प्राप्त करने के लिए, आप निम्न आदेश निष्पादित कर सकते हैं:

npm config get save

स्रोत: https://blog.pusher.com/what-you-need-know-npm-5/





javascript npm