जवाबों:
आप --prefixविकल्प का उपयोग कर सकते हैं :
mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>
पैकेज (ओं) को तब स्थापित किया जाएगा ./install/here/node_modules। mkdirके बाद से NPM अन्यथा पहले से मौजूद चुन सकते हैं की जरूरत है node_modulesनिर्देशिका पदानुक्रम में ऊपर। ( फ़ोल्डरों पर एनपीएम प्रलेखन देखें ।)
npm install(पैकेज नाम के बिना) के लिए पथ निर्दिष्ट करने का कोई तरीका है ? मैं इसे सीधे निकाल दिया, लेकिन फिर npm के लिए लग रहा package.jsonहै {prefix}। मेरा उद्देश्य यह भी है packages.jsonकि परियोजना को रूट करने में सक्षम होने के लिए और एक ही समय में सभी पैकेजों को स्थापित करने में सक्षम हो {project root}/{project webroot}।
npm install, लेकिन --prefixयह एक अच्छे समाधान की तरह लगता है, अगर यह एक पुनरावृत्ति का कारण नहीं बन रहा था।
में प्रलेखन यह कहा गया है: उपसर्ग विकल्प का उपयोग वैश्विक विकल्प के साथ एक साथ :
उपसर्ग स्थान जहां नोड स्थापित किया गया है करने के लिए डिफ़ॉल्ट विन्यास। अधिकांश प्रणालियों पर, यह / usr / स्थानीय है । खिड़कियों पर, यह नोड.नेट बाइनरी का सटीक स्थान है। यूनिक्स प्रणालियों पर, यह एक स्तर ऊपर है, क्योंकि नोड आमतौर पर {उपसर्ग} / nnn.exe के बजाय {उपसर्ग} / बिन / नोड पर स्थापित होता है ।
जब वैश्विक ध्वज सेट किया जाता है, तो npm इस उपसर्ग में चीजों को स्थापित करता है। जब यह सेट नहीं किया जाता है, तो यह पहले से ही पैकेज में नहीं होने पर वर्तमान पैकेज या वर्तमान कार्यशील निर्देशिका की जड़ का उपयोग करता है।
(उनके द्वारा जोर)
तो अपने रूट डायरेक्टरी में आप के साथ स्थापित कर सकते हैं
npm install --prefix <path/to/prefix_folder> -g
और यह node_modulesफ़ोल्डर में फ़ोल्डर स्थापित करेगा
<path/to/prefix_folder>/lib/node_modules
requireविश्व स्तर पर स्थापित नहीं कर सकते , क्या आप कर सकते हैं?
एनपीएम संस्करण 3.8.6 के रूप में, आप उपयोग कर सकते हैं
npm install --prefix ./install/here <package>
निर्दिष्ट निर्देशिका में स्थापित करने के लिए। NPM स्वचालित रूप से node_modulesतब भी फ़ोल्डर बनाता है जब कोई node_modulesनिर्देशिका पहले से ही उच्च पदानुक्रम में मौजूद हो। आप package.jsonवर्तमान निर्देशिका में भी हो सकते हैं और फिर --prefixविकल्प का उपयोग करके निर्दिष्ट निर्देशिका में इसे स्थापित कर सकते हैं :
npm install --prefix ./install/here
Npm 6.0.0 के रूप में, आप उपयोग कर सकते हैं
npm install --prefix ./install/here ./
मौजूदा निर्देशिका में package.json को "./install/here" निर्देशिका में स्थापित करने के लिए। एक बात है जो मैंने मैक पर देखी है कि वह नोड_मॉड्यूल्स डायरेक्टरी के अंदर पैरेंट फोल्डर के लिए एक सिम्लिंक बनाता है। लेकिन, यह अभी भी काम करता है।
नोट: NPM उस पथ का सम्मान करता है जिसे आपने --prefixविकल्प के माध्यम से निर्दिष्ट किया है। यह फ़ोल्डर पर npm प्रलेखन के अनुसार हल करता है , केवल जब विकल्प के npm installबिना उपयोग किया जाता है --prefix।
Can't install <current directory>: Missing package name
package.jsonफ़ाइल की अपेक्षा करता है./install/here