Я переписываю некоторый код bash в gulp, который создает несколько надстроек/расширений для разных браузеров, вдохновленных проектом на GitHub.Выполнение команды с аргументами в gulp
Для Firefox есть строка, которая должна запускать скрипт python, который принимает целевой каталог в качестве аргумента. В gulp мне сложно запустить этот скрипт python.
Я пробовал gulp-run
, gulp-shell
, child_process
, но ни один из них не дал мне правильный результат.
Когда я запустил python ./tools/make-firefox-meta.py ../firefox_debug/
из командной строки, я получил свой желаемый результат и создал каталог firefox_debug
.
Вот мой код gulp-run
:
gulp.task("python-bsff", function(){
return run("python ./tools/make-firefox-meta.py ../firefox_debug/").exec();
});
Это дает мне это фактически не делает ничего:
$ gulp python-bsff
[14:15:53] Using gulpfile ~\dev\gulpfile.js
[14:15:53] Starting 'python-bsff'...
[14:15:54] Finished 'python-bsff' after 629 ms
$ python ./tools/make-firefox-meta.py ../firefox_debug/
Вот мой код gulp-shell
:
gulp.task("python-bsff", function(){
return shell.task(["./tools/make-firefox-meta.py ../firefox_debug/""]);
});
Это дает мне это без фактического результата:
$ gulp python-bsff
[14:18:54] Using gulpfile ~\dev\gulpfile.js
[14:18:54] Starting 'python-bsff'...
[14:18:54] Finished 'python-bsff' after 168 μs
Вот мой код child_process
: это был наиболее перспективным, так как я видел некоторый вывод из питона в командной строке.
gulp.task("python-bsff", function(){
var spawn = process.spawn;
console.info('Starting python');
var PIPE = {stdio: 'inherit'};
spawn('python', ["./tools/make-firefox-meta.py `../firefox_debug/`"], PIPE);
});
Это дает мне этот выход:
[14:08:59] Using gulpfile ~\dev\gulpfile.js
[14:08:59] Starting 'python-bsff'...
Starting python
[14:08:59] Finished 'python-bsff' after 172 ms
python: can't open file './tools/make-firefox-meta.py ../firefox_debug/`': [Errno 2] No such file or directory
Может кто-нибудь сказать мне, пожалуйста, какие изменения я должен сделать, чтобы работать?
звук лучше, чем раньше. gulp завершен «python-bsff» через 13 мс, но изменения, которые должен выполнять файл python, не существует. Все, что связано с каталогом, связанным с каталогом, может привести к этому? –
Он заканчивается через 13 мс, потому что вы неправильно сигнализируете о завершении асинхронного (см. Мое редактирование).Также попробуйте запустить 'python ./tools/make-firefox-meta.py ../ firefox_debug /' в командной строке (в каталоге, где находится ваш 'gulpfile.js'). Если он там работает, он будет работать от глотки. –
сейчас, он работает. Я узнал о вас по вашим задачам. благодаря –