您的平台上没有用于PhantomJS浏览器的二进制文件。请将“设置为”;幻影;环境变量
我的package.json如下所示您的平台上没有用于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
"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
信息非常清楚:您的机器上没有安装PhantomJSkarma 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