当业力已经安装时找不到karma命令

iCh*_*ido 69 macos terminal node.js karma-runner

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

npm install -g karma
Run Code Online (Sandbox Code Playgroud)

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

sudo npm install -g karma
Run Code Online (Sandbox Code Playgroud)

输入密码后,它似乎正确安装.我正在粘贴安装输出的一部分,也许它对某人意味着什么,它将与我的问题相关.在所有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)
Run Code Online (Sandbox Code Playgroud)

然后,当我尝试运行以下命令以使用此命令创建karma配置文件时:

karma init karma.config.js
Run Code Online (Sandbox Code Playgroud)

这是返回的消息:

-bash: karma: command not found
Run Code Online (Sandbox Code Playgroud)

我之前尝试过与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
Run Code Online (Sandbox Code Playgroud)

Kir*_*and 248

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

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

npm install -g karma-cli
Run Code Online (Sandbox Code Playgroud)

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


编辑:请不要忘记upvote @mayankcpdixit,他直接评论了原帖,但实际上没有"回答"这个问题.

  • 请记住`-g`需要sudo权限,所以应该是`sudo npm install -g karma-cli`;) (8认同)

Mar*_*tez 37

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

export PATH="$PATH:/usr/local/share/npm/bin"
Run Code Online (Sandbox Code Playgroud)

我遇到了同样的问题,发现这个解决方案比完全重新安装节点更省时,更有影响力.

编辑这也适用于其他人bash_profile

export PATH="$PATH:/usr/local/lib/node_modules/karma/bin" 
Run Code Online (Sandbox Code Playgroud)

  • 我不得不使用:```export PATH ="$ PATH:/ usr/local/lib/node_modules/karma/bin"``````〜/ .bash_profile```. (9认同)

Lio*_*rom 14

建议使用其命令行界面(karma-cli)安装karma ,它将负责获取适当的业力.您还可以安装特定于您正在处理的每个项目的不同本地版本,并且karma-cli将选择适当的版本.

从业力安装页面:

键入./node_modules/karma/bin/karma开始很糟糕,所以你可能会发现在全局安装karma-cli很有用:

npm install -g karma-cli
Run Code Online (Sandbox Code Playgroud)

现在,通过输入以下内容检查是否安装了业力:

karma start
Run Code Online (Sandbox Code Playgroud)

您还可以通过转到此目录来检查是否安装了业力:

cd /usr/local/lib/node_modules/karma
Run Code Online (Sandbox Code Playgroud)

祝好运!