Я пишу инструмент cli для узла с commander-plus.Commander-plus с gulp
import program from 'commander-plus';
const prompts = ['a', 'b', 'c'];
program.choose(prompts, (index) => {
// never returns;
});
И хочет, чтобы запустить его с задачей глотка, в основном потому, что его удобно и мы загружаем .env переменного, но на развитии только.
import env from 'gulp-env';
gulp.task('env',() => {
env();
});
Поначалу я пытался использовать gulp-shell. Я на самом деле использую аналогичный скрипт для запуска nodemon, который отлично работает. Сценарий cli работает отлично, но commander-plus не будет слушать ввод на клавиатуре.
import shell from 'gulp-shell';
import gulp from 'gulp';
gulp.task('cli', ['env'], shell.task([
'babel-node src/cli',
]))
Позже я обнаружил, что либо это то, как оно должно работать, либо, возможно, теперь оно исправлено. https://github.com/sun-zheng-an/gulp-shell/issues/10
Но также, что gulp-shell занесен в черный список и решил попробовать вместо gulp-exec или child_process.exec.
import { exec } from 'child_process';
gulp.task('cli', ['env'], done => {
exec('babel-node src/server/cli', done);
});