~/.npm 目录是干啥用的?

Posted

技术标签:

【中文标题】~/.npm 目录是干啥用的?【英文标题】:what is ~/.npm dir for?~/.npm 目录是干什么用的? 【发布时间】:2013-01-28 07:53:53 【问题描述】:

我已经安装了全局 npm 包jslint 它就在这里

$ 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 中有一个,我可以安全地删除它吗?

【问题讨论】:

【参考方案1】:

~/.npm 是 npm 用来避免多次重新下载同一个包的缓存。删除它没有坏处。您可以使用以下命令清空它:

npm cache clean

【讨论】:

关于这个的一个问题,我尝试做$npm cache clean 并得到一个错误Error: EACCES, unlink。它建议以管理员身份进行操作,即使我执行 $sudo npm install 一切都会转到我的 home/.npm 目录?它不应该是...... @alexserver 我会尝试使用chown -r 收回您的~/.npm 主管的所有权,然后再次运行npm cache clean 似乎即使我执行 sudo npm install -g 它仍会保存到我的 ~/.npm ...无论如何我在另一篇文章中看到不鼓励使用 sudo npm install。谢谢。 你有这个目录的文档吗?我在任何地方都找不到它,只是引用node_modules。有没有办法a)将默认位置设置为其他位置(例如$XDG_CACHE_HOME/npm),或b)在使用后自动禁用/清理它? 因为它是一个缓存,所以我把我的移到了更合适的地方,即:cd && mv .npm .cache && ln -s .cache/.npm。我的 .cache 树被排除在自动 ZFS 快照之外(这是在 Linux/Ubuntu 上;不确定它是否适用于其他操作系统)

以上是关于~/.npm 目录是干啥用的?的主要内容,如果未能解决你的问题,请参考以下文章

vender文件夹下的文件是干啥用的

cookie是干啥用的?怎么用?

jquery easyui下载包中plugins和locale文件夹是干啥用的??

dll文件是干啥用的啊?

OverrideAuthenticationAttribute 是干啥用的?

这个“1342177280”标志是干啥用的?