什么是〜/ .npm目录?

Ste*_* Lu 34 macos zsh node.js npm

我已经安装了全局的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");
Run Code Online (Sandbox Code Playgroud)

因此,毫无疑问,此时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
Run Code Online (Sandbox Code Playgroud)

包中似乎有两个副本,一个在一个中/usr/local/,一个在中~/.npm.为什么有一个.npm并且我可以安全地将其删除?

Tre*_*ham 75

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

npm cache clean
Run Code Online (Sandbox Code Playgroud)