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

标签 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/

最佳答案

看起来 gulp 和 Bower 之类的东西安装在 /usr/lib 中,而其余文件则安装在 /usr/local/lib 中。 This answer建议如果您的 $PATH 设置正确(并且您没有通过 sudo 安装),则 npm 通常会通过符号链接(symbolic link)安装到 /usr/local/lib code>),所以想必您在过去的某个时候更改了该变量。

如果npm root不返回/usr/local/lib/node_modules,则使用npm config重置您的prefix变量设置前缀/usr/local 应该可以解决问题。

我只需删除 /usr/lib 中的 node_modules,并在正确设置前缀后重新安装。

关于node.js - 为什么 `npm list -g --depth=0` 中缺少模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34699611/

相关文章:

javascript - Strapi 项目显示 URL 未定义

javascript - TypeError : dbObject.集合不是函数

node.js - 无法安装 node-sass

node.js - npm 5.4.1 安装/卸载全部失败

node.js - 从 Firebase 中删除的用户的 UID 是否会重新用于新用户?

node.js - 在 mongodb-native NodeJS 中为集群使用单个连接池与为每个子进程使用多个连接池

node.js - npm install 或yarn 命令运行时间太长 (Ubuntu)

node.js - Node js npm 安装 github 包失败

npm - 通过 npm 脚本递归复制文件跨平台

javascript - 如何在同一个闭包中使用多个 grunt 任务?