npm cli,co / yield没有结束

时间:2017-04-05 22:10:32

标签: node.js bash node-commander

我正在尝试编写node cli个应用程序。 工作但是,它不会返回命令行(至少在Windows中没有,还没有在bash中尝试过)。我必须Ctrl+Break退出应用程序。

#!/usr/bin/env node --harmony

var chalk = require('chalk');
var co = require('co');
var prompt = require('co-prompt');
var program = require('commander');

program
    .version('1.0.0')
    .option('-w, --workshop <workshop number>', 'workshop number to build')
    .parse(process.argv);

co(function* () {
    if (!program.workshop) {
        program.workshop = yield prompt('Workshop: ');
    }

    return yield Promise.resolve(true);
}).then(function() {
    console.log(chalk.bold.cyan('You entered: ') + program.workshop);
});

我也尝试过没有行return yield Promise.resolve(true);,但没有影响。

有什么建议吗?

感谢。

2 个答案:

答案 0 :(得分:0)

对于那些感兴趣的人...我不确定这是否是正确的方式,但是:

  1. 我最终删除了

    return yield Promise.resolve(true);

  2. 然后添加为.then函数的最后一行

    process.exit(0);

  3. 同样,不确定这是否是最佳方法,但确实有效。

答案 1 :(得分:0)

我遇到了同样的问题,并在this共同提示Github问题中找到了另一个解决方案。

if (recurrenceType.equals("Every week")) {