2015-07-07 3 views
0

Привет всем, я делаю свое приложение для веб-сайта первого узла, и все прошло хорошо. Пока я не захотел «освободить» его. Мое приложение использует дочерний процесс для запуска команды в командной строке, но я установил модуль, который мне нужен для запуска с npm install -g, поэтому он работает только для меня. Чтобы попытаться исправить это, я снова установил его без -g, но я все еще не получил команду. Как я могу ссылаться на него?NWJS ('child_process'). Exec command не найден

код:

var exec = require('child_process').exec, 
child; 

child = exec('peerflix "'+q+'" --vlc',function (error, stdout, stderr){ 
    console.log('stdout: ' + stdout); 
    console.log('stderr: ' + stderr); 
    if (error !== null) { 
     console.log('exec error: ' + error); 
    } 
}); 

ответ

0

Так я провел час, чтобы попытаться исправить это, и это получилось! Вот как для тех, кто нуждается в ней

команда peerflix использует файл с именем app.js и все, что я должен был сделать, что работать с nwjs поэтому рабочая команда выглядит следующим образом:

'./nwjs.app/contents/macos/nwjs ./source/node_modules/peerflix/app.js "'+q+'" --vlc' 
1

Команда Не найденная проблема связана с тем, что PATH приложения не равны системе PATH. Таким образом, process.env.PATH не содержит узел env: '/ usr/local/bin'. Есть один способ, который я выяснил, это сбросить process.env.PATH с расположением узла env.

Перед использованием EXEC, установите process.env.PATH так:

var isWin = /^win/.test(process.platform); 
 

 
if (!isWin) { 
 
    process.env.PATH = process.env.PATH + ':/usr/local/bin'; 
 
}