我正在用command-plus 编写一个node cli 工具。
import program from 'commander-plus';
const prompts = ['a', 'b', 'c'];
program.choose(prompts, (index) => {
// never returns;
});
并希望通过 gulp 任务运行它,主要是因为它方便并且我们正在加载 .env 变量,但仅限于开发。
import env from 'gulp-env';
gulp.task('env', () => {
env();
});
起初我一直在尝试使用 gulp-shell。我实际上正在使用类似的脚本来启动 nodemon,它工作正常。cli 脚本运行良好,但 command-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);
});