为什么`npm list -g --depth = 0`中缺少模块?

时间:2016-01-09 22:19:37

标签: node.js npm

我在全球范围内安装了gulpbower

由于某些原因,它们都没有出现在npm list

我是以错误的方式解决这个问题吗?我错过了什么?

nathanbrauer@macthan:~$ npm list -g --depth=0
/usr/lib
├── colorguard@1.0.1
├── contributors@0.5.0
├── git-contributors@0.2.3
├── js-beautify@1.5.10
├── jslint@0.9.6
└── npm@2.14.12

nathanbrauer@macthan:~$ npm list -g | grep bower
nathanbrauer@macthan:~$ bower -v
1.7.2
nathanbrauer@macthan:~$ which bower
/usr/local/bin/bower
nathanbrauer@macthan:~$ ll `which bower`
lrwxrwxrwx 1 root root 35 Jan  6 12:05 /usr/local/bin/bower -> ../lib/node_modules/bower/bin/bower*
nathanbrauer@macthan:~$ ll /usr/local/lib/node_modules/
total 20
drwxr-xr-x 5 nobody nathanbrauer 4096 Jan  6 16:12 ./
drwxr-xr-x 6 root   root         4096 Jan  6 11:41 ../
drwxr-xr-x 6 nobody nathanbrauer 4096 Jan  6 12:05 bower/
drwxr-xr-x 4 nobody nathanbrauer 4096 Jan  6 16:12 es6-promise/
drwxr-xr-x 6 nobody nathanbrauer 4096 Jan  6 11:41 gulp/

1 个答案:

答案 0 :(得分:1)

看起来像gulp和Bower这样的东西安装在/usr/lib,而其他文件都在/usr/local/libThis answer建议npm通常通过符号链接安装到/usr/local/lib,如果您正确设置了$PATH(并且您没有通过sudo进行安装),那么可能是您更改了该变量过去的某个时候。

如果npm root未返回/usr/local/lib/node_modules,那么使用prefix重置npm config set prefix /usr/local变量应该可以解决问题。

我只是删除了node_modules中的/usr/lib,并在prefix设置正确后重新安装。