当业力已经安装时,没有findkarma命令

我使用node.js来安装业力。 在terminal上运行以下命令时,我的第一次尝试失败:

npm install -g karma 

那失败了,所以我决定使用:

 sudo npm install -g karma 

input我的密码后,似乎安装正确。 我粘贴安装的输出的一部分,也许这将意味着某人,这将是我的问题相关。 所有的npm http消息之后,我看到:

 > ws@0.4.27 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 karma@0.8.6 /usr/local/share/npm/lib/node_modules/karma ├── pause@0.0.1 ├── dateformat@1.0.2-1.2.3 ├── xmlbuilder@0.4.2 ├── colors@0.6.0-1 ├── chokidar@0.6.2 ├── growly@1.1.1 ├── mime@1.2.9 ├── q@0.9.6 ├── rimraf@2.1.4 (graceful-fs@1.2.3) ├── coffee-script@1.6.3 ├── minimatch@0.2.12 (sigmund@1.0.0, lru-cache@2.3.0) ├── optimist@0.3.5 (wordwrap@0.0.2) ├── glob@3.1.21 (inherits@1.0.0, graceful-fs@1.2.3) ├── LiveScript@1.0.1 (prelude-ls@1.0.1) ├── log4js@0.6.6 (dequeue@1.0.3, semver@1.1.4, async@0.1.15, readable-stream@1.0.2) ├── lodash@1.1.1 ├── http-proxy@0.10.3 (pkginfo@0.2.3, utile@0.1.7) ├── istanbul@0.1.22 (abbrev@1.0.4, which@1.0.5, fileset@0.1.5, nopt@2.0.0, wordwrap@0.0.2, async@0.1.22, mkdirp@0.3.5, esprima@0.9.9, escodegen@0.0.24, handlebars@1.0.12) └── socket.io@0.9.16 (base64id@0.1.0, policyfile@0.0.4, redis@0.7.3, socket.io-client@0.9.16) 

然后当我尝试运行以下命令来创build一个karmaconfiguration文件与此命令:

 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 

@mayankcpdixit在回答OP的原始问题时给出了答案,但是如果有人错过了,我会再把它放在这里。

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

 npm install -g karma-cli 

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


编辑:请不要忘记加注@mayankcpdixit ,他直接在原帖上评论,但实际上并没有“回答”这个问题。

在你的~/.bash_profile (或类似的)中修改你的PATH以包含npm安装的二进制文件:

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

我有这个相同的问题,并发现这个解决scheme比完全重新安装节点更省时间和影响力。

编辑这也已经为bash_profile其他人工作

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

build议使用其命令行界面( karma-cli )来安装业力,这将负责获取适当的业力。 你也可以安装一个特定于你正在工作的每个项目的不同的本地版本,karma-cli会select合适的版本。

从业力安装页面:

键入./node_modules/karma/bin/karma开始糟透了,所以你可能会发现在全球安装karma-cli是有用的:

 npm install -g karma-cli 

现在,通过input:

 karma start 

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

 cd /usr/local/lib/node_modules/karma 

祝你好运!

不需要完全卸载node.js

只是

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

然后
安装node.js

然后
重新安装业力

这对我有效。

sudo npm install karma安装了karma后,我不得不添加export PATH="$PATH":/usr/local/lib/node_modules/npm/node_modules/karma/bin

希望这可以帮助。

只要去test.sh:

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

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

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

我也面临同样的问题。 它看起来像命令行的业力是一个单独的包可以安装

npm install -g karma-cli

当从Karma 0.10升级到0.12时,去除了karma可执行文件的链接。

你可以把它拿回来

 cd node_modules/.bin ln -s ../karma/bin/karma karma 

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

如果这不起作用,你可能会尝试重新安装业力。