您的平台上没有用于PhantomJS浏览器的二进制文件。请将“设置为”;幻影;环境变量

您的平台上没有用于PhantomJS浏览器的二进制文件。请将“设置为”;幻影;环境变量,phantomjs,karma-runner,mocha-phantomjs,karma-mocha,karma-coverage,Phantomjs,Karma Runner,Mocha Phantomjs,Karma Mocha,Karma Coverage,我的package.json如下所示 "karma-phantomjs-launcher": "^0.1.4", "karma-safari-launcher": "^0.1.1", "karma-sinon-chai": "~0.2.0", "karma-spec-reporter": "~0.0.16", "mocha": "~1.20.1" 我的npm版本是2.2.0 当我运行karma测试时,我得到了什么?karma启动我的.conf.js这似乎是phantom js runner和p

我的package.json如下所示

"karma-phantomjs-launcher": "^0.1.4",
"karma-safari-launcher": "^0.1.1",
"karma-sinon-chai": "~0.2.0",
"karma-spec-reporter": "~0.0.16",
"mocha": "~1.20.1"
我的npm版本是2.2.0


当我运行karma测试时,我得到了什么?karma启动我的.conf.js

这似乎是phantom js runner和phantom js版本的问题

我是如何解决我的问题的

   # install 
   npm install -g karma-phantomjs-launcher

   # temporary path.. set the path
   export PHANTOMJS_BIN=/usr/local/lib/node_modules/karma-phantomjs-launcher/node_modules/phantomjs/lib/phantom/bin/phantomjs

   karma start my.conf.js

我在node的旧版本中也遇到了这个问题。如果不想硬编码此环境变量,则更新节点的版本将解决此问题。只需执行以下操作(OSX说明):


编辑:更新了说明,以确保没有全局phantomjs依赖关系

我遇到了同样的问题。修复方法是手动设置
PHANTOMJS_BIN
变量以指向正确的PHANTOMJS路径。不知何故,karma launcher试图查看由PHANTOMJS_BIN设置的错误路径

以下是对我有效的方法:

$ echo $PHANTOMJS_BIN
/usr/local/lib/node_modules/karma phantomjs启动器/node_modules/phantomjs/lib/phantom/bin/phantomjs


从那以后一切都好。

也有同样的问题,都做了,没有结果 刚刚从全局节点和项目本地删除了“karma phantomjs launcher”文件夹,
称为“npm安装”,一切正常

遇到了这样的问题。我所做的是全局安装phantomjs
npm安装-g phantomjs
。然后转到
karmaphantomjs启动器
module文件夹并打开
index.js
文件。然后我转到
phantomJSExePath
函数并注释掉前面的内容(不确定这样做是否安全)。然后我把

return 'C://Users/user/AppData/Roaming/npm/node_modules/phantomjs/lib/phantom/phantomjs.exe';

使我免于重新键入临时导出。

我用karma phantomjs解决了这个问题-launcher@1.0.0,我也在那里安装了phantomjs@2.1.3.

事实证明,phantomjs已被弃用,取而代之的是预先构建的phantomjs

卸载这两个包并重新安装phantomjs预构建修复了karma phantomjs启动器的问题:

npm -g remove phantomjs phantomjs-prebuilt
npm -g install phantomjs-prebuilt

我的
karma.conf.js
有一行:
process.env.PHANTOMJS_BIN='node_modules/karma PHANTOMJS launcher/node_modules/.BIN/PHANTOMJS'在顶部。我才意识到!我对它进行了评论,它可以正常工作

我删除了我项目下的所有node_modules文件夹并运行“npm安装”。这确实解决了我的问题。

我有时会遇到同样的问题。我有一个
gruntfile.js
,还有一个
package.json
,其中我明确地添加了
phantomjs预构建的
作为依赖项。但我的CI服务器有时可以顺利运行
grunt karma
,而有时无法在您的平台上为PhantomJS浏览器声明
无二进制文件。请设置“PHANTOMJS_BIN”环境变量

因此,我添加了一个
grunt任务
,以确保在测试运行之前设置了
PHANTOMJS_BIN
变量,然后解决了这个恼人的问题

grunt.registerTask('ensurePhantomJsPath', function () {
    process.env.PHANTOMJS_BIN = './node_modules/phantomjs-prebuilt/bin/phantomjs';
    console.log(process.env.PHANTOMJS_BIN);
});
最后,
grunfile.js
看起来像这样:

grunt.registerTask('ensurePhantomJsPath', function () {
    process.env.PHANTOMJS_BIN = './node_modules/phantomjs-prebuilt/bin/phantomjs';
    console.log(process.env.PHANTOMJS_BIN);
});

grunt.registerTask('test', ['ensurePhantomJsPath', 'karma']);

运行以下命令:

npm remove phantomjs -g
npm remove phantomjs
npm install phantomjs
完成此安装后:

您将收到如下消息:

Linking to global install at /usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
复制此路径并运行:

export PHANTOMJS_BIN=/usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
基本上情况是:karma试图启动浏览器,但找不到它的垃圾箱。
一旦您将路径导出到正确的路径,它就会运行。

我在OSX上解决了这个问题:使用sudo删除并创建文件
karma.config.js

信息非常清楚:您的机器上没有安装PhantomJS
karma phantomjs launcher
应该下载phantomjs的二进制文件并安装在您的机器上(如果有的话):因为不是这样,您必须手动安装自己,然后使用
phantomjs_BIN
@MarcoCI将其路径添加到环境变量中。我确实有同样的问题,而且实际上存在phantomjs的二进制文件与
karma phantomjs启动器一起安装
@Flek:然后导出该文件的路径,如下面的答案所示。我通过删除karma phantomjs启动器和phantomjs并运行npm Install修复了它。这些命令最初似乎会导致更多问题,而不是解决方案,但我最终解决了它们
brew升级nodejs
对我不起作用,我得到了
错误:未安装节点
。但似乎只要卸载phantomjs、清理npm缓存并用npm重新安装包,就可以在您的平台上清除phantomjs浏览器的“我的<代码>没有二进制文件”。请设置“PHANTOMJS_BIN”环境变量
错误。非常感谢。这正是为什么我不想从事这些工作。我物理降级节点以解决另一个问题。我第一次可以这么做,但每次我关闭系统并重新启动应用程序时,我都必须再次这样做。有没有办法永久地消除这个错误?我在升级后也遇到了npm的问题
npm安装
只需在出现弃用警告后退出即可。物理下载最新的从修复它为我
Linking to global install at /usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
export PHANTOMJS_BIN=/usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs