वैश्विक npm खिड़कियों पर स्थान स्थापित करें?


86

मुझे 100% यकीन नहीं है, लेकिन मेरा मानना ​​है कि मैंने अपने घर और कार्यालय पीसी दोनों पर विंडोज इंस्टॉलर से नोड वी 5 स्थापित किया है।

मेरे घर पर पीसी ग्लोबल इंस्‍टॉल% APPDATA% के अंतर्गत होता है:

(dev) go|c:\srv> which lessc
c:\users\bjorn\appdata\roaming\npm\lessc
c:\users\bjorn\appdata\roaming\npm\lessc.cmd

मेरे कार्यालय पीसी पर रहते हुए, वे प्रोग्राम फ़ाइलों के तहत जाते हैं:

(dev) go|w:\srv> which lessc
c:\program files\nodejs\lessc
c:\program files\nodejs\lessc.cmd

मुझे PyCharm के फ़ाइल वॉचर को इन वैश्विक टूलों की संख्या के लिए पूर्ण पथ प्रदान करने की आवश्यकता है, और जब से मैंने प्रोजेक्ट फ़ाइल साझा की है, तो यह समझ में आएगा कि उपयोगकर्ता फ़ोल्डर में वैश्विक संसाधन नहीं हैं।

वैश्विक इंस्टॉल अलग-अलग फ़ोल्डरों में क्यों होंगे, और मैं उन्हें कैसे किसी स्थान पर मजबूर कर सकता हूं जो सभी टीम सदस्यों के लिए आम है?


3 साल बाद, मेरे पास एक समान रहस्य था। उत्तर यह निकला कि नोड ने c: \ program files \ नोडज पर एक जंक्शन बनाया था, जो वास्तव में% appdata% \ nvm \ v8.10.0 को इंगित करता है। तो इसने भ्रम दिया कि जो आपने देखा वह फिट हो सकता है।
जॉन हैटन

1
सी: \ प्रोग्राम फाइल्स \ नोडज सिमलिंक एनवीएम की एक कलाकृति बन गया
जॉन हैटन

जवाबों:


66

के अनुसार: https://docs.npmjs.com/files/folders

  • स्थानीय इंस्टॉल (डिफ़ॉल्ट): वर्तमान पैकेज रूट के ./node_modules में सामान डालता है।
  • ग्लोबल इंस्‍टॉल (-g): / usr / लोकल या जहां भी नोड इंस्‍टॉल होता है, उसमें सामान डालता है।
  • यदि आपको इसकी आवश्यकता हो तो इसे स्थानीय रूप से स्थापित करें।
  • यदि आप इसे कमांड लाइन पर चलाने जा रहे हैं तो इसे विश्व स्तर पर स्थापित करें। -> यदि आपको दोनों की आवश्यकता है, तो इसे दोनों स्थानों पर स्थापित करें, या npm लिंक का उपयोग करें।

उपसर्ग विन्यास

उपसर्ग कॉन्फ़िगरेशन उस स्थान पर डिफॉल्ट करता है जहां नोड स्थापित है। अधिकांश प्रणालियों पर, यह है /usr/localखिड़कियों पर, यह नोड.नेट बाइनरी का सटीक स्थान है

डॉक्स थोड़े पुराने हो सकते हैं, लेकिन वे बताते हैं कि वैश्विक इंस्टॉल अलग-अलग निर्देशिकाओं में क्यों समाप्त हो सकते हैं:

(dev) go|c:\srv> npm config ls -l | grep prefix
; prefix = "C:\\Program Files\\nodejs" (overridden)
prefix = "C:\\Users\\bjorn\\AppData\\Roaming\\npm"

अन्य उत्तरों के आधार पर, ऐसा लग सकता है कि ओवरराइड अब विंडोज पर डिफ़ॉल्ट स्थान है, और हो सकता है कि मैंने इस ओवरराइड को लागू करने से पहले अपना कार्यालय संस्करण स्थापित किया हो।

यह सभी टीम के सदस्यों को उनके पीसी के सापेक्ष एक ही निरपेक्ष पथ में भंडारित करने के लिए एक समाधान का सुझाव देता है, अर्थात (व्यवस्थापक के रूप में चलाएं):

mkdir %PROGRAMDATA%\npm
setx PATH "%PROGRAMDATA%\npm;%PATH%" /M
npm config set prefix %PROGRAMDATA%\npm

एक नया cmd.exe विंडो खोलें और सभी वैश्विक पैकेजों को पुनर्स्थापित करें।

स्पष्टीकरण (लिनेनो द्वारा।):

  1. ग्लोबल्स को होल्ड करने के लिए एक समझदार स्थान पर एक फोल्डर बनाएं (Microsoft इस बात पर अडिग है कि आपको ProgramFiles को लिखना नहीं चाहिए, इसलिए% PROGRAMDATA% अगले तार्किक स्थान की तरह लगता है।
  2. निर्देशिका को पथ पर होना चाहिए, इसलिए setx .. /Mसिस्टम पथ (HKEY_LOCAL_MACHINE के तहत) सेट करने के लिए उपयोग करें। यह वही है जो आपको व्यवस्थापक अनुमतियों के साथ शेल में चलाने की आवश्यकता है।
  3. बताओ npmइस नए पथ का उपयोग करने के लिए। (नोट: इस शेल में% PATH% में फ़ोल्डर दिखाई नहीं देता है, इसलिए आपको एक नई विंडो खोलनी होगी)।

चेतावनी: किसी कारण से कमांड setx PATH "%PROGRAMDATA%\npm;%PATH%" /Mएक नए मूल्य को प्रस्तुत नहीं करेगा, लेकिन सब कुछ (पावरशेल में) बदल देगा।
रुबेंस मरिज़ो

47

यदि आप विश्व स्तर पर पैकेज स्थापित करते हैं तो ये विशिष्ट npm पथ हैं:

Windows XP -             %USERPROFILE%\Application Data\npm\node_modules
Newer Windows Versions - %AppData%\npm\node_modules
or -                     %AppData%\roaming\npm\node_modules

1
हम्म .. %APPDATA%एक उपयोगकर्ता फ़ोल्डर के तहत है, और PyCharm पर्यावरण चर को स्वीकार नहीं करता है, इसलिए मुझे लगता है कि यह तब नहीं है।
thebjorn

7
यह गलत है आपके उत्तर को ठीक करें ~ / AppData / रोमिंग / npm / नोड_modules $ npm / c / उपयोगकर्ता / Phil / AppData / रोमिंग / npm / npm: पंक्ति 12: नोड: कमांड नहीं मिला
Philo Rego

Powershell के माध्यम से विश्व स्तर पर पैकेज स्थापित करने से, एक सामान्य फ़ाइल, एक cmd_auto_fileफ़ाइल और एक Windows PowerShell Scriptफ़ाइल बनाई गई थी"$env:APPDATA\npm"
Olov

18

बस विंडोज़ बटन दबाएं और% APPDATA% टाइप करें और एंटर करें।

ऊपर वह स्थान है जहाँ आप \ npm \ नोड_मॉडल फ़ोल्डर पा सकते हैं। यह वह जगह है जहाँ वैश्विक मॉड्यूल आपके सिस्टम में बैठते हैं।


1
यदि आप मेरे प्रश्न को देखते हैं, तो आप पाएंगे कि आपका दावा गलत है। वैश्विक मॉड्यूल्स के तहत भी स्थापित किया जा सकता है %PROGRAMFILES%\nodejs, जो मेरा पहला सवाल है (वे मेरे घर / कार्यालय के पीसी पर अलग-अलग फ़ोल्डर में क्यों समाप्त होते हैं?)। मेरे प्रश्न का संदर्भ (जैसा कि बताया गया है ..) यह है कि मुझे अपनी परियोजनाओं के लिए इसे सही ढंग से स्थापित करने के लिए अन्य टीम के सदस्यों को लाभान्वित करने के लिए PyCharm IDE को इन विश्व स्तर पर npm स्थापित उपकरणों के लिए पथ प्रदान करने की आवश्यकता है। चूंकि (ए) PyCharm निष्पादन योग्य निर्दिष्ट करते समय env var की अनुमति नहीं देता है, और (b) %APPDATA%=c:\Users\bjorn\..मैं यहां APPDATA का उपयोग नहीं कर सकता।
thebjorn

-1

यदि आप केवल यह पता लगाने की कोशिश कर रहे हैं कि एनपीएम आपके वैश्विक मॉड्यूल (इस थ्रेड का शीर्षक) को कहां स्थापित कर रहा है, तो रन करते समय आउटपुट को देखें npm install -g sample_module

$ npm इंस्टॉल -g sample_module C: \ Users \ user \ AppData \ Roaming \ npm \ sample_module -> C: \ Users \ user \ AppData \ रोमिंग \ npm \ n नोड_module \ sample_module \ bin \ sample_module.js + sample_module@5.1.0 2.821 में 1 पैकेज अपडेट किया गया


सवाल सिर्फ शीर्षक का नहीं बल्कि पूरा सवाल है। मुझे नहीं लगता कि यह मेरे सवाल का जवाब है।
thebjorn

@ मेरे विचार से आपका प्रश्न शीर्षक पर्याप्त विशिष्ट नहीं है, और इसलिए मेरे जैसे लोग इसे पाएंगे जो एनपीएम इंस्टॉल लोकेशन की तलाश कर रहे हैं, यह नहीं देख रहे हैं कि इसे कैसे बदलना है या अलग-अलग फ़ोल्डर क्यों हैं, आदि
जावा- addict301

स्वीकृत उत्तर में आपके प्रश्न का उत्तर है: npm config ls -l | grep prefixऔर यहां तक ​​कि अगर यह नहीं था, तो सही प्रक्रिया एक नया और अधिक
संकेंद्रित

निश्चित रूप से आसान नहीं है, क्योंकि आपको कुछ स्थापित करने के बजाय बस कुछ ऊपर देखना है (जो शेल / बैट स्क्रिप्ट के लिए अनुपयोगी बनाता है)।
thebjorn

यदि आप यह पता लगाने की कोशिश कर रहे हैं कि आपके वैश्विक मॉड्यूल को इंस्टॉल के दौरान कहां रखा जा रहा है (जैसे कि मेरा मामला था और शायद अन्य लोग जो इस प्रश्न को इसके वर्तमान शीर्षक के आधार पर पाएंगे)।
जावा-व्यसनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.