Windows में नोड.जेएस मॉड्यूल के लिए डिफ़ॉल्ट वैश्विक स्थापना निर्देशिका बदलें?


134

मेरी खिड़कियों में स्थापना PATHशामिल है C:\Program Files\nodejs, जहां निष्पादन योग्य node.exeहै। मैं nodeशेल से लॉन्च करने में सक्षम हूं , साथ ही साथ npm। मैं नए निष्पादकों को भी स्थापित करना चाहूंगा C:\Program Files\nodejs, लेकिन इसे प्राप्त करना असंभव है।

सेटिंग NODE_PATHऔर NODE_MODULESचर कुछ भी नहीं बदलते हैं: चीजें अभी भी %appdata%\npmडिफ़ॉल्ट रूप से स्थापित हैं ।

मैं वैश्विक स्थापना पथ कैसे बदल सकता हूं?


5
शायद इसलिए कि ग्रेमो सभी नोडज से संबंधित निर्भरता एक ही स्थान पर रखना चाहता है। समस्या यह है, कि नोडज को अपडेट करने के साथ आप सभी स्थापित पैकेज खो देंगे। दूसरी ओर npm को उपयोगकर्ता के% appdata% फ़ोल्डर में डालने से यह उसी मशीन पर अन्य उपयोगकर्ता के लिए अप्राप्य हो जाता है। इसे सामान्य उपयोगकर्ता बनाम व्यवस्थापक के रूप में स्थापित करने के बारे में सोचें।
वोल्कर ई।


1
AppData% से अधिक नियंत्रित स्थान पर जाना मेरे लिए बहुत मायने रखता है, क्योंकि यह काफी%%% -ish को लगता है। (फ़ायरफ़ॉक्स प्रोफाइल और कुछ अन्य लोगों के लिए भी ऐसा ही करना)। हालांकि C:\Program Files, निरंतर व्यवस्थापक सही परेशानियों के लिए तैयार है। Do मैं ऐसा D:\my-repository\npmया ऐसा नहीं करना चाहता था ।
फ्रैंक नॉक

2
@WiredPrairie क्योंकि उपयोगकर्ता फ़ोल्डर में स्थापित बहुत अधिक बेवकूफ है। संकुल को 'विश्व स्तर पर' स्थापित करने का पूरा बिंदु यह है कि संपूर्ण रूप में एक प्रणाली इन संकुल तक पहुँच सकती है।
माइकल ट्रू

4
यहाँ ऐसा करने का एक कारण है: मेरे नेटवर्क पर आपको AppData फ़ोल्डर से कोड निष्पादित करने की अनुमति नहीं है क्योंकि यह अक्सर मैलवेयर, विशेष रूप से कोडलॉक, डाउनलोड और चलाने के लिए होता है। यह मैलवेयर से सुरक्षा की एक अतिरिक्त परत है। चूंकि नोड उन चीजों को स्थापित करता है, जो मैं अपने सिस्टम पर स्थापित स्थान को स्थानांतरित करने या सुरक्षा को कम किए बिना नोड मॉड्यूल नहीं चला सकता हूं।
स्टीव हेनर

जवाबों:


81

npm-foldersप्रलेखन पढ़ने के लिए आपको जो कुछ भी चाहिए वह है । अब मैं अपने जीत नोटबुक शुरू करने के लिए तो मैं यह सत्यापित नहीं कर सकते नहीं करना चाहती, लेकिन आप केवल बदलना चाहिए prefixकरने के लिएc:\Program Files\nodejs अपने कॉन्फ़िग फ़ाइल में। यदि आप इसे सभी उपयोगकर्ताओं के लिए विश्व स्तर पर बदलना चाहते हैं, तो c:\Program Files\nodejs\npmrcफ़ाइल संपादित करें , अन्यथा बनाएँ / संपादित करें c:\Users\{username}\.npmrc

लेकिन इस बदलाव में शायद कुछ पक्ष एफ़ेक्ट्स होंगे इसलिए इस चर्चा को पढ़ें पहले । मुझे लगता है कि आपका विचार अच्छा नहीं है।


33
मुझे npmrcफ़ाइलC:\path\to\nodejs\node_modules\npm\npmrc
वोल्कर ई।

3
npm config set cache <new cache location> --globalमॉड्यूल का उपयोग करते समय यदि आप समस्याओं में चलते हैं और एक साझा ड्राइव में हैं, तो npm कैश स्थान को स्थानीय निर्देशिका में बदलें । मुझे यह त्रुटि मिली, ENOENT: no such file or directoryजब कैश एक साझा ड्राइव में था
RedDevil

1
नए npm फ़ोल्डर को इंगित करने के लिए सिस्टम पथ चर को अद्यतन करने के लिए मत भूलना।
हेइको कोर्युन

64

वैश्विक पैकेज स्थापित करने की कोशिश कर रहा C:\Program Files (x86)\nodejs\हूँ मुझे प्रशासक मुद्दों के रूप में चलाएँ , क्योंकि npm में स्थापित करने की कोशिश कर रहा था
C:\Program Files (x86)\nodejs\node_modules\

इसे हल करने के लिए, वैश्विक इंस्टॉल निर्देशिका को बदलेंC:\Users\{username}\AppData\Roaming\npm :

में C:\Users\{username}\, बनाने .npmrcकी सामग्री के साथ फ़ाइल:

prefix = "C:\\Users\\{username}\\AppData\\Roaming\\npm"

संदर्भ

Windows 7 अल्टीमेट एन 64-बिट SP1 : v0.10.28 : 1.4.10 पर वातावरण
नोडज x86 इंस्टॉलरC:\Program Files (x86)\nodejs\
node --version
npm --version


यह अजीब है कि मैं npm 2.1.6 का उपयोग कर रहा था, और यह% appdata% / npm में सभी वैश्विक मॉड्यूल स्थापित कर रहा था, अब जब मैंने इसे 2.6.1 में अपडेट किया, तो यह c: \ windows \ को स्थापित करने के लिए (और असफल) रहता है प्रोग्राम फाइल्स \ _ क्या आपको पता है कि यह व्यवहार कब बदला?
WORMSS


ऐसा लगता है कि यह एक अलग तरीके से करना था मैंने npm स्थापित किया। हालांकि इस अंतर के लिए धन्यवाद।
WORMSS

2
npm config सेट उपसर्ग C: \ Users \ {username} \ AppData \ Roaming \ npm
बर्नहार्ड डब्लर

62

आप इसके जवाब को मेरे दूसरे प्रश्न के उत्तर में देख सकते हैं ।


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

  • %USERPROFILE%\AppData\Roaming\npm
  • %USERPROFILE%\AppData\Roaming\npm-cache
  • चेतावनी: यदि आप एक अलग उपयोगकर्ता के रूप में समयबद्ध घटनाओं या अन्य स्वचालन कर रहे हैं, तो सुनिश्चित करें कि आप npm installउस उपयोगकर्ता के रूप में चलते हैं । कुछ मॉड्यूल / उपयोगिताओं को विश्व स्तर पर स्थापित किया जाना चाहिए।
  • INSTALLER BUGS: आपको ये निर्देशिकाएं बनानी पड़ सकती हैं या ...\npmनिर्देशिका को अपने उपयोगकर्ताओं को स्वयं जोड़ना होगा ।

सभी उपयोगकर्ताओं के लिए "वैश्विक" स्थान को अधिक उपयुक्त साझा वैश्विक स्थान में बदलने के लिए %ALLUSERSPROFILE%\(npm|npm-cache)(प्रशासक के रूप में ऐसा करें):

  • एक [NODE_INSTALL_PATH]\etc\निर्देशिका बनाएँ
    • इससे पहले कि आप npm config --global ...कार्रवाई करने की कोशिश करें
  • npm मॉड्यूल के लिए वैश्विक (व्यवस्थापक) स्थान बनाएँ
    • C:\ProgramData\npm-cache - एनपीएम मॉड्यूल यहां जाएंगे
    • C:\ProgramData\npm - विश्व स्तर पर स्थापित मॉड्यूल के लिए बाइनरी स्क्रिप्ट यहां जाएंगे
    • C:\ProgramData\npm\node_modules - विश्व स्तर पर स्थापित मॉड्यूल यहां जाएंगे
    • अनुमतियों को उचित रूप से सेट करें
      • व्यवस्थापक: संशोधित करें
      • प्रमाणित उपयोगकर्ता: पढ़ें / निष्पादित करें
  • वैश्विक कॉन्फ़िगरेशन सेटिंग्स सेट करें (प्रशासक कमांड प्रॉम्प्ट)
    • npm config --global set prefix "C:\ProgramData\npm"
    • npm config --global set cache "C:\ProgramData\npm-cache"
  • जोड़े C:\ProgramData\npmअपने सिस्टम के पथ वातावरण चर को

यदि आप अपने उपयोगकर्ता के "वैश्विक" स्थान को %LOCALAPPDATA%\(npm|npm-cache)बदले में बदलना चाहते हैं :

  • आवश्यक निर्देशिका बनाएं
    • C:\Users\YOURNAME\AppData\Local\npm-cache - एनपीएम मॉड्यूल यहां जाएंगे
    • C:\Users\YOURNAME\AppData\Local\npm - स्थापित मॉड्यूल के लिए बाइनरी स्क्रिप्ट यहां जाएंगे
    • C:\Users\YOURNAME\AppData\Local\npm\node_modules - विश्व स्तर पर स्थापित मॉड्यूल यहां जाएंगे
  • Npm कॉन्फ़िगर करें
    • npm config set prefix "C:\Users\YOURNAME\AppData\Local\npm"
    • npm config set cache "C:\Users\YOURNAME\AppData\Local\npm-cache"
  • अपने वातावरण के लिए नया npm पथ जोड़ें PATH
    • setx PATH "%PATH%;C:\Users\YOURNAME\AppData\Local\npm"

1
अपने मध्य सुझाव के अनुसार C: \ ProgramData के लिए वैश्विक स्थान सेट करना एक विंडोज़ वातावरण में इसके लिए सबसे अच्छी जगह है, लेकिन मैं यह नहीं देखता कि आप उपसर्ग का उपयोग करने पर वैश्विक कॉन्फ़िगरेशन फ़ाइल में उपसर्ग कैसे सेट कर सकते हैं वैश्विक कॉन्फिग फ़ाइल खोजें। मैंने बिलिन कॉन्फिग फाइल सी: \ प्रोग्राम फाइल्स \ नोडजेस \ नोड_मॉड्यूल्स \ npm \ npmrc को संपादित करके एक ही परिणाम प्राप्त किया, लेकिन मुझे संदेह है कि यह परिवर्तन किसी चरण में अपडेट द्वारा अधिलेखित हो सकता है।
ओनेपेल्ली

@Onpelli इस मामले में "वैश्विक" .npmrcहोम / प्रोफ़ाइल निर्देशिका में आपके उपयोगकर्ता की फ़ाइल है। इसे सभी उपयोगकर्ताओं के लिए सेट करना होगा।
ट्रैकर 1

अगर मुझे खिड़कियों पर कोई व्यवस्थापक अनुमति नहीं है, तो मैं वैश्विक स्थापना कैसे बदल सकता हूं?
liam xu

liam, आप .npmrcअपने प्रोफ़ाइल निर्देशिका में एक फ़ाइल के माध्यम से अपने उपयोगकर्ता के लिए इसे समायोजित कर सकते हैं ... हालांकि, उस बिंदु पर ymmv।
ट्रैकर 1

19

chocolatey@Tracker द्वारा सुझाए गए इंस्टॉलेशन कॉन्सेप्ट और उस आइडिया पर बिल्डिंग करना , जो मेरे लिए काम कर रहा था, उसे निम्न करना था और विंडोज़ पर सभी उपयोगकर्ता तब nodejsऔर साथ काम करके खुश थे npm

किसी भी उपयोगकर्ता के C:\ProgramData\nodejsलिए इंस्टॉलेशन निर्देशिका के रूप में चुनें nodejsऔर इंस्टॉल nodejsकरें जो व्यवस्थापक समूह का सदस्य है।

यह चॉकलेट के साथ किया जा सकता है: choco install nodejs.install -ia "'INSTALLDIR=C:\ProgramData\nodejs'"

फिर npm-cacheइंस्टॉलेशन डायरेक्टरी के रूट पर एक फोल्डर बनाएं , जो ऊपर दिए गए फॉलो के बाद होगाC:\ProgramData\nodejs\npm-cache

etcस्थापना निर्देशिका के मूल में कहा जाने वाला एक फ़ोल्डर बनाएँ , जो ऊपर दिए गए के बाद होगा C:\ProgramData\nodejs\etc

NODEपर्यावरण चर के रूप में सेट करें C:\ProgramData\nodejs

NODE_PATHपर्यावरण चर के रूप में सेट करें C:\ProgramData\nodejs\node_modules

सुनिश्चित करें कि %NODE%पहले बनाया गया पर्यावरण चर जोड़ा गया है (या इसका पथ) %PATH%पर्यावरण चर में जोड़ा गया है।

संपादित करें %NODE_PATH%\npm\npmrcनिम्नलिखित सामग्री के साथprefix=C:\ProgramData\nodejs

कमांड प्रॉम्प्ट से, ग्लोबल कॉन्फिगरेशन सेट करें जैसे ...

npm config --global set prefix "C:\ProgramData\nodejs"

npm config --global set cache "C:\ProgramData\nodejs\npm-cache"

यह महत्वपूर्ण है कि ऊपर दिए गए चरण अनुक्रम में अधिमानतः किए गए हैं और npm ( npm -g install npm@latest) को अपडेट करने या किसी भी स्थापित करने का प्रयास करने से पहलेnpm मॉड्यूल ।

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


'npm config सूची' का आउटपुट क्या है। इसके अलावा, आप विंडोज या लिनक्स पर चल रहे हैं?
डेमिलाला

दोनों पर कोशिश की। npm config add prefixकाम करता है, लेकिन यहां वर्णित पर्यावरण चर में से कोई भी नहीं। मैं एक और प्रश्न नहीं खोलना चाहता था क्योंकि यह प्रश्न इसे कवर करता है, लेकिन उत्तर (इसके अलावा npm config) नहीं हैं।
trysis

NODE पर्यावरण चर अनिवार्य रूप से केवल बायनेरिज़ को उजागर करने के लिए है। आपको अभी भी प्रक्रिया में उल्लिखित उपसर्ग और कैश (यदि पहले से सेट नहीं है) सेट करने की आवश्यकता है।
दामिलोला

ओह धन्यवाद। यह जवाब या Google पर कहीं और से बहुत स्पष्ट नहीं था। मैं पर्यावरण चर की तलाश कर रहा था क्योंकि वे प्रोग्रामेटिक रूप से बदलना आसान है, लेकिन एक-लाइनर बैश कमांड भी ठीक हैं, मुझे लगता है।
त्रिशिस्क

इसने मेरे लिए खूबसूरती से काम किया। विस्तृत निर्देशों के लिए धन्यवाद!
ErnestoP

15

आपको इस कमांड का उपयोग npm संकुल के वैश्विक इंस्टॉलेशन फ्लोशन को सेट करने के लिए करना चाहिए

(गिट बश) npm config --global set prefix </path/you/want/to/use>/npm

(सीएमडी / Git-cmd) npm config --global set prefix <drive:\path\you\want\to\use>\npm

आप इसके npm-cacheठीक बगल में स्थित स्थान पर भी विचार कर सकते हैं । (जैसा कि विंडोज़ पर एक सामान्य नोडज इंस्टॉलेशन में होगा)

(गिट बश) npm config --global set cache </path/you/want/to/use>/npm-cache

(सीएमडी / Git-cmd) npm config --global set cache <drive:\path\you\want\to\use>\npm-cache


1
मदद करने में खुशी। जब भी आप अपना परिवेश बदलते हैं, तो आपके लिए इसे निष्पादित करने के लिए एक शेल स्क्रिप्ट या बैच फ़ाइल बनाना एक शानदार विचार होगा। कम से कम यह है कि आईडी क्या करते हैं
davejoem

जोड़ने लायक भी "अगर रास्ते में जगह हो। जैसे "C:\Program Files\blah"
taylorswiftfan

7
  • चरण 1 :

    npm विन्यास उपसर्ग मिलता है

    • डिफ़ॉल्ट पथ है: %USERPROFILE%\AppData\Roaming\npm
  • चरण 2 :

    npm config कैश प्राप्त करें

    • डिफ़ॉल्ट पथ है: %USERPROFILE%\AppData\Roaming\npm-cache
  • चरण 3 :

    npm विन्यास सेट उपसर्ग \ npm

    • उदाहरण npm config set prefix C:\\dev\\node\\npm
  • चरण 4 :

    npm कॉन्फिगर सेट कैशे \ npm-cache

    • उदाहरण npm config set cache C:\\dev\\node\\npm-cache

आवश्यक रूप से अपडेट किए गए हैं या नहीं, यह जांचने के लिए चरण 1 और 2 फिर से चलाएँ

बस। जब भी आप वैश्विक पैकेज स्थापित करते हैं, तो आपको उन्हें \ npm \ node_modules के अंदर स्थापित करके देखना चाहिए


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

4

डिफ़ॉल्ट वैश्विक फ़ोल्डर है C:\Users\{username}\AppData\Roaming\npm। आप (यदि यह मौजूद नहीं है) .npmrcफ़ाइल बना सकते हैं C:\Users\{username}\और जोड़ सकते हैं prefix = "path\\to\\yourglobalfolder"। ध्यान दें, खिड़कियों में, पथ को अलग करना चाहिए double back-slash



1

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

mklink /D "your_location_want_to_create_symlink" "location_of_node_npm_file"

उदाहरण:

mklink /D "C:\Users\MyUser\AppData\Roaming\npm" "D:\Nodejs Data\npm"

अब आपने npm फोल्डर के लिए एक सिमलिंक बनाया है, यह सिमलिंक D:\Nodejs Data\npmसब कुछ अच्छी तरह से काम करेगा।


0

मैंने ज्यादातर जवाबों की कोशिश की कि मेरे मामले में कुछ भी नहीं लगता। इसलिए मैंने अपने env वेरिएबल्स में Temp स्थान को C: \ npm में बदल दिया। फिर यह काम करने लगा। यह एक अच्छा विचार नहीं है बल्कि एक अस्थायी समाधान है।


0

प्रोग्राम फ़ाइल फ़ोल्डर से नोड फ़ोल्डर को पूरी तरह से हटा दें। नोड की स्थापना रद्द करें। Js और फिर इसे पुनर्स्थापित करें। परिवर्तन पर्यावरण पथ पथ का पथ। C: \ users \ yourusername से .npmrc फ़ाइल हटाएं


2
क्या आपके पास कोई दस्तावेज या स्रोत हैं जो आपके कथन का समर्थन करते हैं? जैसा कि यह वर्तमान स्थिति में लिखा गया है, यह बताना मुश्किल है कि क्या आपका सुझाव वास्तव में इसे स्वयं की कोशिश किए बिना काम करता है, जो समय लेता है जिसे अन्यथा बचाया जा सकता है।
फाइलर

0

यह बहुत विन्यास की आवश्यकता नहीं है बस उन्नत सिस्टम सेटिंग्स पर जाएं उस पथ को कॉपी करें जहां आपने अपना नोड स्थापित किया है और बस एक पर्यावरण चर बनाएं और अपने प्रॉम्प्ट में नोड -v कमांड के साथ जांचें!


0

विंडोज में नोड.जेएस (एनपीएम) मॉड्यूल के लिए डिफ़ॉल्ट वैश्विक स्थापना निर्देशिका को बदलने के लिए, आपको 2 रास्तों को ठीक करने की आवश्यकता है।

जब आप निम्न कमांड का उपयोग करके विश्व स्तर पर स्थापित करने का प्रयास करते हैं, तो पहले उस मौजूदा पथ की जाँच करें जहाँ नोड मॉड्यूल स्थापित हो रहे हैं:

npm सूची -g --depth = 0

यह आपको वर्तमान पथ लौटा देगा जहां नोड मॉड्यूल अभी स्थापित हो रहे हैं। उदाहरण: D: \ vsc \ typecript

अब npm और npm-cache फ़ोल्डर देखने के लिए निम्न पथ पर जाएँ। C: \ Users \ उपयोगकर्ता नाम (OR नंबर) \ AppData \ Roaming

आपके C ड्राइव के रोमिंग फ़ोल्डर में आपको npm और npm-cache फ़ोल्डर मिलेंगे। + Npm + फ़ोल्डर पर क्लिक करें और पथ का चयन करें [बस बार पथ पर क्लिक करें स्वचालित रूप से चुना जाएगा, इसे कॉपी करें]। यह एक पथ छवि है जिसे आपको चयन करने की आवश्यकता है

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

अंतिम चरण: CMD पर जाएं और निम्न आदेश को सही करें:

npm सेट उपसर्ग C: \ Users \ उपयोगकर्ता नाम (संख्या) \ AppData \ Roaming \ npm \ नोड_modules

फिर से वही तरीका है जिसे हमने पर्यावरण चर के लिए चुना है, हम पथ में सिर्फ एक और फ़ोल्डर जोड़ रहे हैं और वह है नोड_मॉड्यूल।

सभी सेट .... अभी प्रयास करें ... यह काम करेगा ..


0

निम्नलिखित आदेश द्वारा अपने वैश्विक नोड पैकेज की स्थापना का वर्तमान रास्ता खोजें।

npm सूची -g --depth = 0

कमांड का अनुसरण करके इस पथ को सही पथ पर बदलें।

npm सेट उपसर्ग C: \ Users \ उपयोगकर्ता नाम (संख्या) \ AppData \ Roaming \ npm \ नोड_modules

इसने मेरे लिए काम किया। बेहतर समझ के लिए मेरा पिछला उत्तर पढ़ें।

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