2013-02-12 3 views
25

Я установил глобальный НПМ пакет 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, чтобы избежать повторной загрузки одного и того же пакета несколько раз. Нет никакого вреда в его устранении. Вы можете опорожнить его командой:

npm cache clean 
+0

Отлично! спасибо –

+0

Один вопрос об этом, я пытался сделать '' '$ npm cache clean''' и получил ошибку' '' Ошибка: EACCES, unlink'''. Он предлагает делать как администратор, даже если я делаю $ sudo npm install, все идет в мой дом/.npm dir ?? это не должно быть ... – alexserver

+1

@alexserver Я бы попытался использовать 'chown -r', чтобы вернуть право собственности на ваш' ~/.npm', а затем снова запустить npm cache clean. –

Смежные вопросы