2017-04-05 7 views
0

私はnode cliアプリケーションを作成しようとしています。しかし、ですが、コマンドラインには戻っていません(少なくともWindowsではなく、まだbashで試していません)。私はCtrl+Breakをアプリケーションから外していなければなりません。npm cli(終了/終了なし)

#!/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);せずにそれを試していないてきたが、それは何の影響を与えています。

提案がありますか?

ありがとうございました。興味のある方のため

答えて

0

...私はこれが方法が、あるかどうかわからないんだけど:

  1. 私のように追加すると

    return yield Promise.resolve(true);

  2. を削除することになりました私の.then機能の最後の行

    process.exit(0);

また、これが最良のアプローチであるかどうかはわかりませんが、うまくいきます。

0

私は同じ問題を抱えており、this Githubの同時プロンプトで別の解決策を見つけました。

var co = require('co'); 
var prompt = require('co-prompt'); 

co(function*() { 
    var value = yield prompt('Value: ') 
    return value 
}).then(function (value) { 
    // do whatever you need with the value 
    console.log(value) 
}).then(function() { 
    // when you are done you must pause stdin 
    process.stdin.pause() 
}) 

// now the process will exit normally 
関連する問題