我使用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配置文件时:
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
答案 0 :(得分:248)
@mayankcpdixit在回答OP的原始问题时给出了答案,但如果有人错过,我会再次提及。
你不需要卸载所有内容,如果我必须手动为每个npm包添加一个新的路径链接,我尝试安装,我可能会自己拍摄。
npm install -g karma-cli
动臂。现在你已经安装了karma命令行。就像Grunt一样。
编辑:请不要忘记upvote @mayankcpdixit,他直接评论了原帖,但实际上没有“回答”这个问题。
答案 1 :(得分: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"
答案 2 :(得分:14)
建议使用命令行界面(karma-cli)安装karma,它将负责获取适当的业力。您还可以安装特定于您正在处理的每个项目的不同本地版本,并且karma-cli将选择适当的版本。
来自业力installation页面:
键入 ./ node_modules / karma / bin / karma start 很糟糕,因此您可能会发现全局安装karma-cli很有用:
npm install -g karma-cli
现在,通过输入以下内容检查是否安装了业力:
karma start
您还可以通过转到此目录来检查是否安装了业力:
cd /usr/local/lib/node_modules/karma
祝你好运!
答案 3 :(得分:2)
不需要完全卸载node.js
只需
sudo rm -rf /usr/local/lib/node_modules/npm/
然后
安装node.js
然后
重新安装业力
这对我有用。
答案 4 :(得分:2)
在使用export PATH="$PATH":/usr/local/lib/node_modules/npm/node_modules/karma/bin
安装业力后,我必须添加sudo npm install karma
。
希望这会有所帮助。
答案 5 :(得分: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 $*
答案 6 :(得分:1)
我也面临同样的问题。看起来命令行的karma是一个单独的包,可以通过
安装 npm install -g karma-cli
答案 7 :(得分:0)
从Karma 0.10升级到0.12时,将删除与业力可执行文件的链接。
你可以用
取回它cd node_modules/.bin
ln -s ../karma/bin/karma karma
答案 8 :(得分:-21)
尝试重新安装node.js.有很多方法可以安装它,但我建议从nodejs.org
下载如果这不起作用,您可以尝试重新安装业力。