मैं npm का उपयोग करके विश्व स्तर पर एक मॉड्यूल कैसे स्थापित करूं?


202

मैंने हाल ही में OSX पर Node.js और npm मॉड्यूल स्थापित किया है और मुझे लगता है कि सेटिंग्स के साथ एक समस्या है:

npm install [MODULE] is not installing the node.js module to the default path 
which is /usr/local/lib/node_modules.

जवाबों:


347

यदि आप विश्व स्तर पर एक npm मॉड्यूल स्थापित करना चाहते हैं, तो -gउदाहरण के लिए, नए ध्वज का उपयोग करना सुनिश्चित करें :

npm install forever -g

1.0pm के बाद से npm मॉड्यूल इंस्टालेशन से संबंधित सामान्य सिफारिशें ( blog.nodejs.org से ली गई हैं ):

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

मैंने हाल ही में इस सिफारिशों का उपयोग किया है और यह बहुत आसानी से नीचे चला गया है। मैंने विश्व स्तर पर हमेशा स्थापित किया (क्योंकि यह एक कमांड लाइन टूल है) और स्थानीय रूप से मेरे सभी एप्लिकेशन मॉड्यूल।

हालाँकि, यदि आप कुछ मॉड्यूल विश्व स्तर पर उपयोग करना चाहते हैं (अर्थात एक्सप्रेस या मोंगोडब), तो यह सलाह लें (यह भी ब्लॉग से लिया गया। nodejs.org ):

बेशक, कुछ ऐसे मामले हैं जहां आप दोनों करना चाहते हैं। कॉफी-स्क्रिप्ट और एक्सप्रेस दोनों ऐसे ऐप्स के अच्छे उदाहरण हैं जिनमें कमांड लाइन इंटरफ़ेस है, साथ ही एक लाइब्रेरी भी है। उन मामलों में, आप निम्न में से एक कर सकते हैं:

  • इसे दोनों जगहों पर स्थापित करें । गंभीरता से, क्या आप डिस्क स्थान पर कम हैं? यह ठीक है, वास्तव में है। वे छोटे जावास्क्रिप्ट प्रोग्राम हैं।
  • इसे विश्व स्तर पर स्थापित करें, और फिर npm लिंक कॉफ़ी-स्क्रिप्ट या npm लिंक एक्सप्रेस (यदि आप एक ऐसे प्लेटफ़ॉर्म पर हैं जो प्रतीकात्मक लिंक का समर्थन करता है।) तो आपको केवल सभी साइमलिंक को अपडेट करने के लिए ग्लोबल कॉपी को अपडेट करना होगा।

मेरी राय में पहला विकल्प सबसे अच्छा है। सरल, स्पष्ट, स्पष्ट। यदि आप विभिन्न परियोजनाओं के एक ही पुस्तकालय में एक ही पुस्तकालय का फिर से उपयोग करने जा रहे हैं तो दूसरा वास्तव में बहुत आसान है। (भविष्य की किस्त में npm लिंक पर अधिक।)

मैंने उन विविधताओं में से एक का परीक्षण नहीं किया, लेकिन वे बहुत ही सरल प्रतीत होती हैं।


7
स्पष्टीकरण के लिए धन्यवाद। इसहाक को पूरे एनपीएम मैनफाइल और गिट विकी को उपरोक्त पाठ से बदलना चाहिए। बड़े पैमाने पर भ्रम को साफ कर सकता है।
मौविस लेडफोर्ड

shweeet। यह काम आया, मैं इस बदलाव से पकड़ा गया। कुछ बिंदु पर एनपीएम इंस्टाल ने कमांड लाइन एक्सेस दी, फिर यह गायब हो गया और मैं संक्रमण को पकड़ने के लिए परियोजना का बारीकी से पालन नहीं कर रहा था।
मार्क एस्सेल

यह बताता है कि मेरे अपाचे कॉन्फिग डायरेक्टरी में नोड नोड क्यों था। । ।
इयान हंटर

1
से blog.node.js.org : आमतौर पर वैश्विक बाइनरी में {उपसर्ग} / बिन और वैश्विक मॉड्यूल {उपसर्ग} में स्थापित कर रहे हैं / node_modules और स्थानीय मॉड्यूल ./node_modules में हैं स्थापित कर रहे हैं, निष्पादनयोग्य ./node_modules/.bin/ में जाना । आप npm prefixस्थानीय उपसर्ग पाने के लिए दौड़ सकते हैं , और node prefix -gवैश्विक उपसर्ग देखने के लिए :)
nacho4d

"यदि आप किसी ऐसी चीज़ को स्थापित कर रहे हैं जिसे आप अपने प्रोग्राम में उपयोग करना चाहते हैं, तो आवश्यकता ('जो भी हो) का उपयोग करके, फिर इसे स्थानीय रूप से , अपने प्रोजेक्ट के रूट पर स्थापित करें।" - मुझे लगता है, अगर मॉड्यूल में बाइनरी संकलित है, तो यह एक अच्छा विचार नहीं है: इसे ठीक से लिनक्स और विंडोज़ पर संकलित करना होगा। मुझे लगता है कि इस तरह के मॉड्यूल को NODE_PATH वातावरण का उपयोग करके सेट किया जाना है ( नोडज.ओआर.आई.आई.पी.आई. / / )
Sneg

8

एक मैक पर, मैंने पाया कि आउटपुट में वह जानकारी थी जिसकी मुझे तलाश थी:

$> npm install -g karma
...
...
> ws@0.4.25 install /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)
...
$> ls /usr/local/share/npm/bin
karma nf

जोड़ने के बाद /usr/local/share/npm/binकरने के लिए export PATHमेरे में लाइन .bash_profile, यह बचत, और sourceयह ing, मैं चलाने के लिए सक्षम था

$> karma --help

सामान्य रूप से।


4

मुझे आपके ऐप फ़ोल्डर की जड़ में एक पैकेज.जॉन फ़ाइल का उपयोग करना पसंद है।

यहाँ एक मैं उपयोग कर रहा हूँ

nvm use v0.6.4

http://pastie.org/3232212

npm install

2

मेरे पास उबंटू पर एक्सप्रेस स्थापित करने के मुद्दे थे:

यदि किसी कारण से NPM कमांड गायब है, तो npm कमांड को टेस्ट करें npm help। यदि नहीं, तो इन चरणों का पालन करें - http://arnolog.net/post/8424207595/installing-node-js-npm-express-mongoose-on-ubuntu

अगर सिर्फ एक्सप्रेस कमांड काम नहीं कर रहा है, तो कोशिश करें:

sudo npm install -g express

यह सब कुछ काम कर रहा है जैसा कि मुझे विंडोज 7 और ओएसएक्स के साथ उपयोग किया जाता है।

उम्मीद है की यह मदद करेगा!


1

आपको सुपरसुसर विशेषाधिकार प्राप्त करने की आवश्यकता है,

 sudo npm install -g <package name>

-1

Ubuntu में, .bashrc फ़ाइल में node_modules का पथ सेट करें

निर्यात पथ = "/ घर / उपयोगकर्ता नाम / नोड_मॉड्यूल / .bin: $ पथ"


-5

आपके पास वैश्विक स्थान पर नोड मॉड्यूल स्थापित करने के लिए लिखने की अनुमति नहीं हो सकती है /usr/local/lib/node_modules, जैसे कि मामले में npm इंस्टॉल -g पैकेज को रूट के रूप में चलाते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.