2012-06-24 2 views
13

У меня есть скрипт nodejs, который использует phantomjs-node для очистки веб-страницы. Он отлично работает, когда я запускаю из окна терминала, но не тогда, когда я запускаю из Webstorm через конфигурацию запуска для приложения Node JS.Сценарий не работает в Webstorm, но не с терминала

Что может быть причиной ошибки в Webstorm?

Я уже пробовал запустить сценарий из терминала после комментирования содержимого .bash_profile, и он все еще работает. Я также проверил содержимое process.env в другом примере сценария и увидел, что значения полностью различаются в Webstorm и терминале.

Сценарий:

var phantom = require('phantom'); 
phantom.create(function(ph) { 
    return ph.createPage(function(page) { 
     return page.open("http://www.google.com", function(status) { 
      console.log("opened google? ", status); 
      return page.evaluate((function() { 
       return document.title; 
      }), function(result) { 
       console.log('Page title is ' + result); 
       return ph.exit(); 
      }); 
     }); 
    }); 
}); 

терминальный выход (работает!):

opened google? success 
Page title is Google 

WebStorm выход консоли (сбой):

/usr/local/bin/node phantom.js 
phantom stderr: execvp(): No such file or directory 


Process finished with exit code 0 
+1

Если вы находитесь на Mac, проверьте этот вопрос: http://apple.stackexchange.com/q/51677. – CrazyCoder

ответ

25

Webstorm устанавливает переменную PATH, но она отличается от переменной PATH, которую приложение получает при запуске в терминале. Мое решение, хак:

  1. Тип node, чтобы добраться до РЕПЛА
  2. Run process.env
  3. Скопируйте содержимое значения PATH
  4. Добавить переменное окружение WebStorm называется PATH, которая использует это значение. Он перезапишет переменную PATH по умолчанию, которую Webstorm предоставляет вашему приложению.

Done!

+0

Это, наконец, помогло мне с Rubymine с той же проблемой. – forforf

+0

Как вы добавляете переменную окружения в webstorm? – pgreen2

+1

@ pgreen2 перейдите на экран «Запуск/отладка конфигураций», выберите конфигурацию Node JS, которую вы пытаетесь исправить, а затем справа от полей, таких как «Путь к узлу» и «Параметры узла», вы должны увидеть поле «Переменные среды» ». Нажмите кнопку «...», чтобы вы попали на экран CRUD для переменных среды для конфигурации. – Trindaz