2013-02-12 10 views
25

Ich habe die globale npm Paket jslint installiert und es lebt hierwofür ist ~/.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"); 

So ist es ohne jeden Zweifel an dieser Stelle, dass jslint ist in der Tat von diesem dir laufen wird und nicht hier:

$ 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 

Es scheint zwei Kopien des Pakets zu geben, eins in /usr/local/ und eins in ~/.npm. Warum gibt es einen in .npm und ist es sicher für mich, es zu entfernen?

Antwort

61

~/.npm ist ein Cache, den npm verwendet, um das wiederholte Herunterladen desselben Pakets zu vermeiden. Es schadet nicht, es zu entfernen. Sie können es mit dem folgenden Befehl leeren:

npm cache clean 
+0

Ausgezeichnet! Vielen Dank –

+0

Eine Frage dazu, ich habe versucht, '' '$ Npm Cache sauber' '' und bekam einen Fehler '' 'Fehler: EACCES, unlink'''. Es schlägt vor, als Administrator zu tun, auch wenn ich $ sudo npm installiere alles geht zu meinem Haus/.npm dir ?? es sollte nicht sein ... – alexserver

+1

@alexserver Ich würde versuchen, 'chown -r' zu verwenden, um den Besitz Ihres' ~/.npm' Directors zurückzufordern, dann führe 'npm cache clean' erneut aus. –