2013-08-24 3 views
1

мерзавец установлена ​​на окнах и работает из любого каталога (он находится в пути System)Выполнить GIT ЦМД с помощью Node.js на окнах терпит неудачу с ERR

var child_process = require('child_process'); 
child_process.exec('git --version', function(err, stdout, stderr) { 
    // stdout is correct - git version 1.7.11.msysgit.1 
    // but err is not null 
    // err is [Error: Command failed: ] killed: false, code: 1, signal: null }  
} 

Что может привести к этому?

+0

У меня нет git, установленного на окнах, но, возможно, 'git \ version' является правильным синтаксисом? – Plato

+0

git --version работает на окнах. Я думаю, что он не может найти git, но я не понимаю, почему – WHITECOLOR

+0

как раздражает! возможно, в качестве обходного пути вы можете передать '{env: {PATH:" C: \ path to \ node "}}' как аргумент параметров 'process.exec()', как описано в [docs] (http: // nodejs .org/апи/child_process.html # child_process_child_process_exec_command_options_callback). кроме этого у меня нет опыта работы с переменными среды Windows, поэтому нет дальнейших идей:/ – Plato

ответ

2

У меня была проблема с Windows 7 с msysgit. Кажется, что две проблемы решают эту проблему.

Во-первых, убедитесь, что ваша переменная Path система включает в себя путь к каталогу бен Git, и не ЦМД каталог:

C:\Program Files (x86)\Git\bin 

Далее, проверьте у вас есть последняя версия msysgit. Я проверил вопрос, как решается с версией 1.8.4-preview:

https://code.google.com/p/msysgit/downloads/list

Перезагрузка оболочки и повторите попытку.

1

В качестве обходного пути вы можете передать {env:{PATH:"C:\path to\node"}} в качестве аргумента параметров process.exec(cmd, opts, callback), как описано в документах. Я удивлен, что путь к Windows не переносится, но не имеет объяснения.

+0

Я добавил в OP, нет проблем с PATH. Он просто не может выполнить git без ошибок. – WHITECOLOR

Смежные вопросы