Нет двоичного файла для браузера PhantomJS на вашей платформе. Пожалуйста, установите переменную env " PHANTOMJS BIN

мой пакет.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

whay я получаю это, когда я запускаю тест кармы-карма начать мой.conf.js

11 ответов


У меня тоже была эта проблема со старой версией node. Если вы не хотите, чтобы жестко кодировать эту переменную среды, обновление вашей версии узла решит проблему. Просто сделайте следующее (инструкции OSX):

npm uninstall -g phantomjs
npm cache clean -f
brew upgrade nodejs
rm -rf node_modules
npm install -g YOUR_GLOBAL_DEPENDENCIES
npm install

Edit: обновленные инструкции, чтобы убедиться, что нет глобальной зависимости phantomjs


это, похоже, проблема с phantom JS runner и phantom JS версиями.

https://github.com/karma-runner/karma-phantomjs-launcher/issues/31

Как я исправил свою проблему..

   //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

я столкнулся с этой же проблемой. Исправление вручную установить PHANTOMJS_BIN переменная, указывающая на правильный путь phantomjs. Как-то Karma launcher пытается посмотреть на неправильный путь, установленный PHANTOMJS_BIN.

вот что сработало для меня:

$ echo $PHANTOMJS_BIN

/usr/local/lib/node_modules/karma-phantomjs-launcher/node_modules/phantomjs/lib/phantom/bin/phantomjs

$ export PHANTOMJS_BIN=/usr/local/lib/node_modules/phantomjs/lib/phantom/bin/phantomjs

$ grunt test

после этого все в порядке.


Я попал в эту проблему с karma-phantomjs-launcher@1.0.0, где я также установил phantomjs@2.1.3 - ...

оказывается, что phantomjs устарел, заменен на phantomjs-prebuilt.

удаление обоих пакетов и переустановка phantomjs-prebuilt Исправлена проблема с karma-phantomjs-launcher:

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

Я удаляю всю папку node_modules в моем проекте и запускаю "npm install". Это исправило мою проблему.


мой karma.conf.js была такая строка:process.env.PHANTOMJS_BIN = 'node_modules/karma-phantomjs-launcher/node_modules/.bin/phantomjs'; в верхней части. Я только что это поняла! Я прокомментировал это, и это работает


я встречал ту же проблему иногда. У меня есть gruntfile.js и я package.json где я явно добавить phantomjs-prebuilt как зависимость. Но мой сервер CI иногда может работать grunt karma гладко, а иногда не удается претендовать No binary for PhantomJS browser on your platform. Please, set “PHANTOMJS_BIN” env variable.

поэтому я добавляю grunt task для обеспечения PHANTOMJS_BIN переменная была установлена перед тестовыми запусками, а затем решила раздражающую проблему.

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

Итак, наконец-то Gruntfile.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']);

Я решил эту проблему на OSX: удалить и создать файл karma.config.js с помощью sudo.


была такая же проблема, сделал все выше, никакого результата просто удалил папку "karma-phantomjs-launcher" из глобальных node_modules и локального проекта, называется "установка npm", и все в порядке!


столкнулся с такой проблемой. То, что я сделал, это установить phantomjs глобально npm install -g phantomjs. Затем пошел в karma-phantomjs-launcher папка модуля и открыт . Затем я пошел в phantomJSExePath функция и прокомментировал предыдущее содержимое (не уверен, что безопасно делать то, что я сделал). Тогда я поставил

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

спас меня от перепечатки временного экспорта.


выполните следующие команды:

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

В основном, что происходит: карма пытается запустить браузер, но не может найти его бункер. Как только вы экспортируете путь в правильный путь, он запускается.