2013-02-12 85 views
25

我已经安装了全球NPM包jslint,并在这里生活〜/ .npm目录是什么?

$ 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

非常好!谢谢 – 2013-02-12 21:55:55

+0

关于这个的一个问题,我试着做''npm cache clean''',并得到一个错误'''错误:EACCES,unlink'''。它建议做一个管理员,即使我做$ sudo npm安装一切都会到我家/ .npm dir?它不应该...... – alexserver 2014-07-08 04:22:31

+1

@alexserver我会尝试使用'chown -r'来回收你的'〜/ .npm'导向器的所有权,然后再次运行'npm cache clean'。 – 2014-07-09 18:08:11