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

时间:2013-11-22 12:21:43

标签: javascript node.js npm

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

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

/usr/lib/node_modules

其中一些安装在

/usr/local/lib/node_modules

在使用这个全局模块之前我没有问题,直到我尝试安装一个生成器,这是我第一次想到查看目录,因为在安装生成器后,它说我还没有安装发生器。

奇怪的是,当我尝试了一些模块时,除了其他模块外,它们的工作完全正常,说它没有安装。

有没有办法从nodejs(包括其模块)卸载/删除/清理我的计算机并重新安装它以便它只使用一个目录,因此不会有任何混淆。

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

1 个答案:

答案 0 :(得分:3)

在我看来,你已经安装了2个不同版本的nodejs。可能是打包版本,然后是新版本?

它的工作原理是因为您的节点文件夹可能设置为/ usr / local / lib / node_modules 在查找模块时,节点始终遍历文件夹树,因此,如果您执行require('imNotHere'),它将查找:

/usr/local/lib/node_modules/imNotHere
/usr/local/node_modules/imNotHere
/usr/node_modules/imNotHere
/node_modules/imNotHere
失败之前

在您的设置模块中,/ usr / lib / node_modules仍将被此

捕获