2013-07-17 54 views
65

我使用node.js来安装业力。当已经安装业力时找不到karma命令

npm install -g karma 

那失败,所以我决定用:终端上运行以下命令时,我第一次尝试失败

sudo npm install -g karma 

输入我的密码后,它似乎正确安装。 我粘贴安装的输出的一部分,也许这对某人意味着什么,它将与我的问题有关。所有的NPM HTTP消息后,这是我所看到的:

> [email protected] install /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws 
> (node-gyp rebuild 2> builderror.log) || (exit 0) 

    CXX(target) Release/obj.target/bufferutil/src/bufferutil.o 
    SOLINK_MODULE(target) Release/bufferutil.node 
    SOLINK_MODULE(target) Release/bufferutil.node: Finished 
    CXX(target) Release/obj.target/validation/src/validation.o 
    SOLINK_MODULE(target) Release/validation.node 
    SOLINK_MODULE(target) Release/validation.node: Finished 
/usr/local/share/npm/bin/karma -> /usr/local/share/npm/lib/node_modules/karma/bin/karma 
[email protected] /usr/local/share/npm/lib/node_modules/karma 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] ([email protected]) 
├── [email protected] 
├── [email protected] ([email protected], [email protected]) 
├── [email protected] ([email protected]) 
├── [email protected] ([email protected], [email protected]) 
├── [email protected] ([email protected]) 
├── [email protected] ([email protected], [email protected], [email protected], [email protected]) 
├── [email protected] 
├── [email protected] ([email protected], [email protected]) 
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]) 
└── [email protected] ([email protected], [email protected], [email protected], [email protected]) 

然后,当我尝试运行下面的命令来创建此命令噶配置文件:

karma init karma.config.js 

这是消息得到返回:

-bash: karma: command not found 

我已经尝试了与sudo相同的命令在它之前,但我得到了同样的结果。

有没有人对发生了什么有什么想法? 任何帮助表示赞赏。

*更新! 我决定检查一个名为:builderror.log 的文件,位于:/usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws

这是它表明:

gyp WARN EACCES user "root" does not have permission to access the dev dir "/Users/eperez/.node-gyp/0.10.5" 
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/.node-gyp" 
gyp http GET http://nodejs.org/dist/v0.10.5/node-v0.10.5.tar.gz 
gyp http 200 http://nodejs.org/dist/v0.10.5/node-v0.10.5.tar.gz 
+1

这显然不是在你的路径,用'这karma'确认。我已经经历了npm安装的东西到一个不在路径的默认位置,我认为在Arch上。我不记得它去了哪里,但对不起:(PS你可以做'cd /; find | grep karma'来得到文件名或路径上的所有文件系统与业力 – Plato

+0

我跑了命令,这就是我得到的。确定它是什么意思:'用法:find [-H | -L | -P] [-EXdsx] [-f路径]路径... [表达式] find [-H | -L | -P] [ - EXdsx] -f path [path ...] [expression]' – iChido

+0

好的,对不起,你的'find'程序的行为与我的不同。无论如何,你需要找到npm安装的东西,并确保文件夹被添加到你的路径中终端会话。在我的Linux Mint上安装FWIW,'npm -g'把东西放在'/ usr/local/bin'里。 – Plato

回答

238

@mayankcpdixit在回答OP的原始问题时给出了答案,但我会再次将其放在这里,以防有人错过它。

你不需要卸载所有的东西,如果我必须手动为每个npm包添加一个新的路径链接,我尝试安装我可能会自己拍摄。

npm install -g karma-cli 

繁荣。现在你已经安装了karma命令行。就像Grunt一样。


编辑:请不要忘记给予好评@mayankcpdixit还有,他直接谈到了原职,但实际上并没有“答案”的问题。

+0

这正是正确的答案。谢谢。 – Gremash

+6

请记住'-g'需要sudo权限,所以它应该是'sudo npm install -g karma-cli';) – sol4me

+0

好得多的解决方案....谢谢! – accraze

-21

尝试重新安装node.js中有很多方法可以安装它,但我建议从nodejs.org下载

如果这样不起作用,您可以尝试重新安装业力。

+0

我最初通过自制软件安装了节点。我断开连接的节点,然后从网站下载node.js。安装了pkg文件,现在一切似乎都正常。谢谢! – iChido

37

在你~/.bash_profile(或类似)修改你的PATH包括NPM-安装的二进制文件:

export PATH="$PATH:/usr/local/share/npm/bin" 

我有这个同样的问题,并发现该解决方案是耗时少和影响力不是完全重新 - 安装节点。

编辑这个还曾为他人bash_profile

export PATH="$PATH:/usr/local/lib/node_modules/karma/bin" 
+9

我不得不使用: '''出口PATH = “$ PATH:在/ usr/local/lib目录/ node_modules /人缘/ BIN”''' 在'''〜/ .bash_profile'''。 –

+0

嗨@JasonShah很高兴再次收到您的来信,并感谢您的评论 –

+1

无法确定是否确保Karma在我的路径中或完全重新安装节点... +1 –

2

不需要完全卸载的Node.js

只是

sudo rm -rf /usr/local/lib/node_modules/npm/ 

然后
安装节点。JS

然后
重装因缘

这为我工作。

1

刚去的test.sh:

查找:$BASE_DIR/../node_modules/karma/bin/karma start $BASE_DIR/../config/karma.conf.js $*

替换为:/usr/local/bin/karma start $BASE_DIR/../config/karma.conf.js $*

或者:karma start $BASE_DIR/../config/karma.conf.js $*

2

我曾与sudo npm install karma安装业力之后添加export PATH="$PATH":/usr/local/lib/node_modules/npm/node_modules/karma/bin

希望这有助于。

1

我也面临同样的问题。它看起来像因果报应的命令行是建议与安装业力可以通过

npm install -g karma-cli

+1

对于任何人的信息:我还必须将karma-cli添加到我的package.json中,以便它可以在Circle CI上运行。 – Rimian

13

安装一个单独的包其命令行界面(karma-cli)将于获取相应的因果报应的护理。您还可以安装特定于您正在使用的每个项目的不同本地版本,并且karma-cli将选择适当的版本。

从因缘installation页:

打字./node_modules/karma/bin/karma开始很烂,所以你可能会发现它很有用,安装卡玛CLI全球:

npm install -g karma-cli 

现在,通过键入来检查是否安装了业力:

karma start 

您也可以通过转到这个目录检查是否安装了业力:

cd /usr/local/lib/node_modules/karma 

祝你好运!

0

当从Karma 0.10升级到0.12时,指向karma可执行文件的链接被删除。

你可以把它找回来与

cd node_modules/.bin 
ln -s ../karma/bin/karma karma 
相关问题