npm · npm
संदेश
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
इसका मतलब
npm ने किसी ऐसी सिस्टम डायरेक्टरी में लिखने की कोशिश की जो आपके उपयोक्ता की नहीं है — package में कोई खोट नहीं, आपको वहाँ लिखने का अधिकार ही नहीं है। लगभग हमेशा यह ऐसे node पर npm install -g होता है जिसे operating system के package प्रबंधक ने /usr/local जैसी जगह पर रखा हो। npm config set prefix ~/.npm-global वैश्विक installation को आपकी home डायरेक्टरी में ले जाता है, और उसका bin PATH में आ जाने पर यह त्रुटि लौटती नहीं। sudo npm install -g चल भी जाता है, पर cache और node_modules में root के मालिकाने वाली फ़ाइलें छोड़ जाता है जो बाद में साधारण installation पर वही EACCES पैदा करती हैं; nvm जैसा version प्रबंधक इस पूरे वर्ग को मिटा देता है।
सुधार
npm config set prefix ~/.npm-global- कौन देता है
- npm
- npm
- 20
npm में कारण अंतिम छह npm ERR! पंक्तियों में नहीं, पहली code XXXX पंक्ति में लिखा होता है, और जब गड़बड़ी आपके कोड की जगह dependency के पेड़ या native build से आती है, तो node_modules मिटाकर फिर install करने से आधे मामले सुलझ जाते हैं।
एरर संदेश कैसे पढ़ें
- पहली पंक्ति से पढ़ें। जितना नीचे जाएँगे उतना वह औज़ार के भीतर की बात है; कारण आम तौर पर सबसे ऊपर लिखा होता है।
- फ़ाइल का नाम और पंक्ति संख्या दिखे तो वहीं से शुरू करें — stack का सबसे ऊपरी frame नहीं, बल्कि वह सबसे ऊपरी पंक्ति जिसमें आपकी लिखी फ़ाइल का नाम हो।
- संदेश को जैसा है वैसा खोजें, पर पहले अपने paths और variable नाम हटा दें — वही खोज को अटकाते हैं।
- वही स्थिति औज़ार के हर संस्करण में अलग शब्दों में आती है। नतीजे बेमेल लगें तो संस्करण संख्या भी जोड़ें।
- कोई सुधार चिपकाने से पहले देख लें कि वह क्या फेंक देगा। इनमें कुछ पलटे नहीं जा सकते।
अक्सर पूछे जाने वाले सवाल
Q. “npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'” का क्या मतलब है?
npm ने किसी ऐसी सिस्टम डायरेक्टरी में लिखने की कोशिश की जो आपके उपयोक्ता की नहीं है — package में कोई खोट नहीं, आपको वहाँ लिखने का अधिकार ही नहीं है। लगभग हमेशा यह ऐसे node पर npm install -g होता है जिसे operating system के package प्रबंधक ने /usr/local जैसी जगह पर रखा हो। npm config set prefix ~/.npm-global वैश्विक installation को आपकी home डायरेक्टरी में ले जाता है, और उसका bin PATH में आ जाने पर यह त्रुटि लौटती नहीं। sudo npm install -g चल भी जाता है, पर cache और node_modules में root के मालिकाने वाली फ़ाइलें छोड़ जाता है जो बाद में साधारण installation पर वही EACCES पैदा करती हैं; nvm जैसा version प्रबंधक इस पूरे वर्ग को मिटा देता है।
Q. इसे कैसे ठीक करें?
npm config set prefix ~/.npm-global — चलाने से पहले ऊपर देख लें कि यह कमांड क्या फेंक देता है।
Q. यह कौन-सा औज़ार देता है?
npm। यह npm में आता है, और संदेश 8 शब्दों का है।