commander-plus で node cli ツールを作成しています。
import program from 'commander-plus';
const prompts = ['a', 'b', 'c'];
program.choose(prompts, (index) => {
// never returns;
});
そして、主に便利で.env変数をロードしているため、gulpタスクで実行したいのですが、開発時のみ.
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);
});