2013-02-12 68 views
25

मैं वैश्विक NPM पैकेज jslint स्थापित किया है और इसे यहाँ रहता~/.npm dir के लिए क्या है?

$ ls -la /usr/local/bin/jslint 
lrwxr-xr-x 1 lust admin 40 Feb 12 15:31 /usr/local/bin/jslint -> ../lib/node_modules/jslint/bin/jslint.js 

$ ls -la /usr/local/lib/node_modules/jslint/bin 
total 8 
drwxr-xr-x 3 lust staff 102 Apr 16 2012 . 
drwxr-xr-x 10 lust staff 340 Feb 12 15:31 .. 
-rwxr-xr-x 1 lust staff 2330 Apr 16 2012 jslint.js 

$ which jslint 
/usr/local/bin/jslint 

$ head -3 /usr/local/bin/jslint 
#!/usr/bin/env node 

var linter = require("../lib/linter"); 

तो यह जो भी इस बात कि jslint इस निर्देशिका से चलाया जा रहा है और यहां की नहीं है पर किसी भी शक के बिना है:

$ ls -la .npm/jslint/0.1.9/package/bin/   
total 8 
drwxr-xr-x 3 lust staff 102 Apr 16 2012 . 
drwxr-xr-x 9 lust staff 306 Feb 12 15:31 .. 
-rwxr-xr-x 1 lust staff 2330 Apr 16 2012 jslint.js 

पैकेज की दो प्रतियां दिखाई देती हैं, /usr/local/ में से एक और ~/.npm में से एक। .npm में कोई क्यों है और क्या यह मेरे लिए इसे सुरक्षित करना सुरक्षित है?

उत्तर

61

~/.npm एक कैश है जो एनपीएम एक ही पैकेज को कई बार फिर से डाउनलोड करने से बचने के लिए उपयोग करता है। इसे हटाने में कोई हानि नहीं है। आप इसे कमांड के साथ खाली कर सकते हैं:

npm cache clean 
+0

उत्कृष्ट! धन्यवाद –

+0

इसके बारे में एक सवाल, मैंने '' '$ npm कैश क्लीन' '' करने की कोशिश की और त्रुटि ''त्रुटि: EACCES, अनलिंक''' प्राप्त हुई। यह एक प्रशासक के रूप में करने का सुझाव देता है, भले ही मैं $ sudo npm करता हूं सब कुछ मेरे घर/एनपीएम डीआईआर में जाता है ?? यह नहीं होना चाहिए ... – alexserver

+1

@alexserver मैं आपके '~/.npm' निदेशक के स्वामित्व को पुनः प्राप्त करने के लिए' chown -r' का उपयोग करने का प्रयास करूंगा, फिर फिर से 'npm कैश क्लीन' चलाएं। –