2010-09-15 11 views
11

रूट उपयोगकर्ता के रूप में npm अप सेट करना straighforward और workds है। सिवाय इसके कि आपको रूट के रूप में npm कमांड चलाने होंगे (अनुशंसित नहीं)। तो मैंने सोचा कि मैं इसे गैर-रूट उपयोगकर्ता के रूप में स्थापित करने का प्रयास करूंगा।रूट रूट के बिना आप एनपीएम (नोड पैकेज मैनेजर) कैसे सेट अप करते हैं?

  1. root, binroot, और manroot फ़ोल्डरों को उपयोगकर्ता के स्वामित्व वाले की ओर इशारा करते के साथ एक .npmrc फ़ाइल बनाने:

    NPM प्रलेखन के अनुसार, रूट पहुँच के बिना गैर-रूट उपयोगकर्ता अप NPM से सेट कर सकते हैं।

  2. फिर इंस्टॉल स्क्रिप्ट चला रहा है।

ठीक है। इंस्टॉल ठीक था।

लेकिन नोड एनपीएम द्वारा प्रदान किए गए पैकेज नहीं देख सकता है।

तो मैं एनपीएम द्वारा प्रदान किए गए पैकेजों के बारे में नोड कैसे बना सकता हूं? (जब मैंने पहले रूट के रूप में एनपीएम स्थापित किया था तो मुझे कुछ भी करने की ज़रूरत नहीं थी)। मैं नोड के भीतर require.paths सेट कर सकता हूं, या NODE_PATH पर्यावरण चर सेट करता हूं, लेकिन क्या?

धन्यवाद।

+0

क्या एनपीएम अब नोड के साथ नहीं आता है? मुझे एनपीएम कॉमन्स को रूट के रूप में कभी नहीं चलाया गया है जब तक कि मैं उपयोग नहीं कर रहा हूं ... – tjameson

उत्तर

5

एक छोटे से अन्वेषण के माध्यम से, ऐसा लगता है कि आप कर सकते हैं:

  1. सेट अपने NODE_PATH जो कुछ NPM के रूट निर्देशिका है, या
  2. जबकि नोड में, आह्वान require.paths.push('path_to_npm_root')
+0

और यदि आप इसे प्रतिलिपि से डीबग करने का प्रयास कर रहे हैं, तो http://github.com/ry/node/issues/ देखें बंद # मुद्दे/303 – keturn

4

इस के लिए काम किया मैं:

  1. बनाएंफ़ोल्डर

    mkdir ~/.node 
    
  2. संपादित ~/.npmrc और लाइन

    जोड़ने अपने ~/.profile या ~/.bash_profile और जोड़ने इन पंक्तियों
    prefix = ~/.node 
    
  3. संपादित

    PATH="$HOME/.node/bin:$PATH" 
    NODE_PATH="$HOME/.node/lib/node_modules:$NODE_PATH" 
    

अब मैं क्या कर सकते हैं npm -g install http-server तरह बातें और यह होगा बिना रूट के ~/.node तक लंबा। इस जगह के साथ, जब मैं http-server टाइप करता हूं, तो यह चलता है।