Ruby - ExecJS не загружается (у меня есть подходящие материалы и местоположение PATH.) [Windows]

У меня проблема с ExecJS в том, что он не может найти требуемое время выполнения. Я использую Windows, и на моем компьютере установлены Windows CScript и Node.js, но ни один из этих парней не вызывается.

В результате я не могу запустить любую задачу rails, которая включает это (я даже не могу загрузить свой список граблей в RubyMine для вызова таких действий, как db:create для создания моих баз данных из нового проекта.)

Я могу получить доступ как к csript, так и к узлу из командной строки, и я проверил мои переменные окружения и их правильное расположение файлов в PATH. Что-то еще разрушает мою способность использовать ExecJS. У кого-нибудь еще был подобный опыт, когда у вас были все правильные вещи, но что-то все еще идет не так?

2 ответа

Решение

Когда Ruby порождает дочерний процесс для вызова CScript или Node, он будет использовать те же правила, которые позволяют cmd.exe выполнить их из командной строки.

Но иногда вещи в вашем реестре или переменные среды могут повлиять на этот процесс.

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

Пожалуйста, проверьте это COMSPEC переменная окружения установлена ​​для использования cmd.exe и ничего подобного TCC/LE или другим вещам.

C:\>SET COMSPEC

Кроме того, убедитесь, что ваш реестр не содержит AutoRun ключ, который также повлияет на Ruby.

C:\>REG QUERY "HKCU\Software\Microsoft\Command Processor"
C:\>REG QUERY "HKLM\Software\Microsoft\Command Processor"

Если вы видите ключ AutoRun в одной из приведенных выше команд это означает, что что-то настроено для автоматического выполнения каждый раз, когда новый cmd.exe запускается, что плохо в некоторых случаях.

Пожалуйста, следуйте инструкциям на странице устранения неполадок о том, как его удалить.

Это также влияет на установку gem, которая требует компиляции, но если она не дает сбоя, проблема может быть в другом.

Надеюсь, это поможет.

У меня были похожие проблемы, мое базовое скелетное приложение не запускалось, несмотря на то, что у меня установлен Node.js, а затем пробовал gem therubyracer. В конце концов я решил использовать мантру для устранения неполадок с окнами: "Если сомневаешься, запускай от имени администратора" Поэтому я запустил мой rails cmd в качестве администратора, и после этого он работал нормально.

Другие вопросы по тегам