全局安装的npm包无法使用

17

本地npm软件包按预期工作,但我似乎无法运行全局安装的软件包。 它甚至没有抛出任何错误,什么也没有发生(例如:express、coffee等)。

这并没有困扰我太多,直到我想使用coffee-script。

我已经检查过以下事项(我使用的是Xubuntu 12.04):

  • npm列出了它

  • 它已安装在/usr/local/bin中

  • 通过(npm | apt-get)更新|卸载|重新安装npm

  • 卸载nodejs并进行了/opt/bin/node的新git重建

    =>同样的问题..

有人知道解决办法吗?


您是通过 sudo npm install -g <name> 命令安装它们的吗? - Blender
不管是使用sudo npm install -g <name>还是<name> -g,都能够成功安装,但如果我尝试在终端中运行该包的命令时,什么也没有发生。 - tibtob
1
你可能犯了和我一样的错误。在Debian中,有两个名字带有node的软件包(node和nodejs),node与nodejs无关,但如果你安装了它,就会与nodejs发生冲突。请参考http://askubuntu.com/questions/235655/node-js-conflicts-sbin-node-vs-usr-bin-node。 - jdcantrell
2个回答

22

请问您的环境变量中是否已经设置了NODE_PATH变量?

//show if set
echo $NODE_PATH

//set NODE_PATH
NODE_PATH="/usr/local/lib/node_modules"

NODE_PATH应包含模块安装位置的目录路径。它可以有多个目录(用冒号分隔)。


$NODE_PATH 没有设置,但是多亏了你,我再次检查了 node_modules 文件夹 :) - tibtob
而那做了什么,@tibtob?我使用Arch Linux,不知道有一个节点路径。 - blamb
在Windows中,您可以使用命令“where node”找到要设置的路径。将NODE_PATH环境变量设置为此文件夹。 - Shashi Jeevan M. P.

7

事实证明,它尝试使用node而不是nodejs命令启动。因此,在 /usr/local/lib/node_modules/coffee-script/bin/coffee 中,我将#!/usr/bin/env node更改为#!/usr/bin/env nodejs,现在可以正常工作了。


这解决了我的一些问题。希望我早点发现你的解决方案。我已经苦苦挣扎了一个星期 :( - Andre
@tibtob,你能告诉我你是如何调试的吗?谢谢。 - isnvi23h4
1
很遗憾,更改节点为nodejs后,我的问题仍然没有解决,症状仍然相同。 - Szczepan Hołyszewski
您好,我知道这个答案发布已经很久了,如果可以的话,我需要帮助,/usr/local在哪里?谢谢。 - Aljohn Yamaro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接