Npm在不同的位置节点js上安装全局模块

我在unix os,ubuntu上,而且我在安装全局模块时遇到问题。

当我试图查找node_modules文件夹的位置时,我发现npm安装了我的一些全局模块

/usr/lib/node_modules 

其中一些安装在

 /usr/local/lib/node_modules 

在使用这个全局模块之前,我没有任何问题,直到我试图安装一个生成器,那时候我第一次考虑到目录,因为在安装生成器之后,它说我没有安装生成器。

奇怪的是,当我尝试了一些模块,除了其他模块,它们工作得很好,说没有安装。

有没有办法从nodejs(包括它的模块)中卸载/删除/清理我的电脑,然后再次安装它,这样它将只使用一个目录,所以不会有任何混淆。

你为什么认为npm在两个diff中安装了这个东西。 目录。

它看起来像你有两个不同版本的nodejs安装。 可能是一个打包的版本,然后是一个新的版本?

这是因为你的节点文件夹可能被设置为/ usr / local / lib / node_modules当查找模块时,节点allways遍历文件夹树,所以如果你做一个require('imNotHere'),它将显示在:

 /usr/local/lib/node_modules/imNotHere /usr/local/node_modules/imNotHere /usr/node_modules/imNotHere /node_modules/imNotHere 

在失败之前。 在你的设置模块中,/ usr / lib / node_modules仍然会被这个抓到