2012-07-02 17 views
22

मुझे ऑफ़लाइन सर्वर पर "वैश्विक" एनपीएम एप्लिकेशन इंस्टॉल करने की आवश्यकता है।ऑफ़लाइन सर्वर पर npm -g को कैसे स्थापित करें

npm install 

और फिर जिसके परिणामस्वरूप फ़ाइलों को पैक:

यह एक सामान्य आवेदन स्थापित करने के लिए आसान है। या तो मैन्युअल रूप से या एनपीएम पैक का उपयोग कर।

हालांकि, मैं कैसे इस तरह के हमेशा के लिए इंटरनेट के बिना के रूप में वैश्विक आवेदन (किसी प्रकार की क्योंकि यह स्क्रिप्ट स्थापित किया गया है) स्थापित कर सकते हैं?

npm install -g forever 

उत्तर

18

कोशिश npmbox, यह npmzip का नया नाम है जो आपको एक फ़ाइल

+0

पर स्थापित कर सकता है मैंने सर्वर पर npmbox pn स्थापित किया है लेकिन कैसे स्थापित करें इसका उपयोग कर pm2? –

+0

क्षमा करें, लेकिन मेरे लिए काम नहीं किया। निराश होने तक कोशिश करने में काफी समय बिताया। नीचे और कैसे पोस्ट किया गया था। –

17

आप एक टारबॉल फ़ाइल से सामान स्थापित करते हैं, npm documentation की जाँच कर सकते हैं। आप npm view forever dist.tarball के साथ हमेशा के लिए टारबॉल का यूआरएल पा सकते हैं और इसे डाउनलोड कर सकते हैं। इस तरह कुछ कोशिश करें:

curl -so forever.tar.gz `npm view forever dist.tarball 2> /dev/null` 
npm install ./forever.tar.gz -g 

लेकिन आपको सभी निर्भरताओं के लिए भी ऐसा करना पड़ सकता है। एक बेहतर तरीका हो सकता है लेकिन यह मेरी खोज में मुझे मिला है।

+1

आपके उत्तर के लिए धन्यवाद। हालांकि, यह तुरंत इंटरनेट से निर्भरताओं को खींचने की कोशिश करता है। * एनपीएम http प्राप्त करें https://registry.npmjs.org/broadway* –

+0

स्वाभाविक रूप से, आपको पहले किसी भी निर्भरता को स्थापित करने की आवश्यकता होगी। – Kato

+0

आप सही काटो हैं। पर कैसे? ** हमेशा ** के लिए बहुत निर्भरताएं हैं। –

3

प्रयास करें npmzip

npm install -g npmzip 
npmzip <package> 

आप वर्तमान निर्देशिका में टारबॉल मिल जाएगा इस लक्ष्य मशीन में ले जाया जा सकता है और:

npmunzip <tarball> 
+1

एनपीएम डिफ़ॉल्ट रूप से tar.gz ज़िप गिट svn को [मैनुअल] (https://www.npmjs.org/doc/files/package.json.html#dependencies) – yellowsir

4

द्वारा ऑफ़लाइन एनपीएम पैकेज स्थापित करने की अनुमति देगा, मैंने offline-npm f बनाया या एक साफ तरीके से स्थापित सभी निर्भरताओं को प्राप्त करना। नोड-जीईपी के उपयोग के बिना मॉड्यूल के लिए सब कुछ वर्णित के रूप में काम करना चाहिए।

यदि आपको node-gyp (जो आमतौर पर ऑनलाइन स्थापित किया जाता है) की आवश्यकता होती है तो उस ऑफ़लाइन मशीन पर ~/.node-gyp की प्रतिलिपि बनाने पर विचार करें।

1

अपने पैकेज.जेसन में bundledDependencies पर निर्भरता सूचीबद्ध करें, और फिर टैरबॉल बनाने के लिए npm pack चलाएं। इसे अन्य मशीन पर ले जाएं, और या तो npm install <tarball>, या इसे मैन्युअल रूप से खोलें।

https://github.com/npm/npm/issues/1349

1

खैर .... के एक दिन बाद यह ऊपर संदर्भ के साथ काम करने की कोशिश कर (npmbox या ऑफलाइन-NPM) ऊपर कुछ रास्ता बहुत सरल के साथ आया था। मुझे npmbox के लिए धन्यवाद कहना है। विचार यह है कि उस कैश को उस उदाहरण से रखें जिसमें ऑनलाइन पहुंच है और फिर इसे ऑफ़लाइन में उपयोग करें।

मशीन में इंटरनेट के साथ:

1 - स्पष्ट NPM कैश: npm cache clear

2 - पैकेज स्थापित, की सुविधा देता है अपने xyz कहते हैं: npm install -g **package.x.y.z**

3 - एक फ़ोल्डर में में प्रति कैश। ..यह कॉल जो कुछ भी (मुझे लगता है NPM कैश, बिल्कुल कि बारे में निश्चित नहीं रूट फ़ोल्डर में है): cp -R /.npm/* **/cache-whatever-folder**

कोई इंटरनेट के साथ

मशीन में:

4 - को यह कैश-जो कुछ-फ़ोल्डर ले कोई इंटरनेट के साथ और कहा कि, स्वच्छ कैश के बाद और उदाहरण इसके साथ स्थापित (मैं का संकेत नहीं होगा फ़ोल्डर :)

npm cache clear

npm install --global --cache **/cache-whatever-folder** --optional --cache-min 99999999999 --shrinkwrap false **package.x.y.z**

कॉपी करने के लिए कैसे

हो गया
2

इन्सटाल PM2 ऑफ़लाइन: -

RHEL-7

पर नोड-v6.10.3 और NPM-3.10.10 पर परीक्षण किया गया इंटरनेट के साथ मशीन पर जाएं कनेक्शन: -

#npm install -g npmbox 
#npmbox npmbox 
#scp npmbox.npmbox [email protected]:. 

इंटरनेट कनेक्शन के बिना मशीन पर जाएँ: -

#ssh [email protected] 
#tar --no-same-owner --no-same-permissions -xvzf npmbox.npmbox 
#npm install --global --cache ./.npmbox.cache --optional --cache-min 99999999999 --shrinkwrap false npmbox 

जाओ इंटरनेट कनेक्शन के साथ मशीन के लिए: -

#npm install pm2 -g 
#npmbox pm2 
#scp pm2.npmbox [email protected]:. 

मशीन के लिए इंटरनेट कनेक्शन के बिना जाओ: -

#npmunbox pm2.npmbox --global 
#pm2 ls 
संबंधित मुद्दे