69

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

npm install -g karma

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

sudo npm install -g karma

输入我的密码后,它似乎安装正确。我正在粘贴安装输出的一部分,也许它对某人有意义,并且与我的问题有关。在所有 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)

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

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
4

9 回答 9

251

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

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

npm install -g karma-cli

繁荣。现在你已经安装了业力命令行。就像咕噜一样。


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

于 2014-05-20T19:05:21.610 回答
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" 
于 2013-08-23T16:55:38.873 回答
14

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

从业力安装页面:

键入./node_modules/karma/bin/karma start很糟糕,因此您可能会发现全局安装 karma-cli 很有用:

npm install -g karma-cli

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

karma start

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

cd /usr/local/lib/node_modules/karma

祝你好运!

于 2014-09-03T02:17:57.590 回答
2

不需要完全卸载 node.js

只是

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

然后
安装 node.js

然后
重新安装业力

这对我有用。

于 2014-01-22T09:29:23.397 回答
2

我必须export PATH="$PATH":/usr/local/lib/node_modules/npm/node_modules/karma/bin在安装 karma 后添加sudo npm install karma.

希望这可以帮助。

于 2014-04-22T15:01:30.473 回答
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 $*

于 2014-02-06T14:48:17.807 回答
1

我也面临同样的问题。看起来命令行的业力是一个单独的包,可以通过

npm install -g karma-cli

于 2014-06-22T11:26:12.093 回答
0

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

你可以把它拿回来

cd node_modules/.bin
ln -s ../karma/bin/karma karma
于 2015-02-18T10:17:46.987 回答
-21

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

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

于 2013-07-17T20:08:50.487 回答