我在全球范围内安装了gulp
和bower
。
由于某些原因,它们都没有出现在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/
答案 0 :(得分:1)
看起来像gulp和Bower这样的东西安装在/usr/lib
,而其他文件都在/usr/local/lib
。 This 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
设置正确后重新安装。