我是yeoman
发电机的新手(我使用了大量第三方发电机,但从未写过我自己的发电机)......
每当我向用户询问提示时,该过程永远不会退出:
var generators = require('yeoman-generator');
module.exports = generators.Base.extend({
// The name `constructor` is important here
constructor: function () {
// Calling the super constructor is important so our generator is correctly set up
generators.Base.apply(this, arguments);
// Next, add your custom code
this.option('coffee'); // This method adds support for a `--coffee` flag
this.log('Your first generator');
},
prompting: {
askForInsightOptIn: function () {
var done = this.async();
this.prompt({
type: 'confirm',
name: 'insight',
message: 'How are you?',
default: true
}, function (prompt) {
done();
}.bind(this));
}
}
});
控制台输出如下:
$ yo debug-test
Your first generator
? How are you? (Y/n) y
? How are you? Yes
I can type anything here and it never responds
waiting...
如果我注释掉提示的代码,一切都按预期工作。
$ yo debug-test
Your first generator
$
为什么添加提示会阻止生成器正常退出?我是否遗漏了生成器中没有正确关闭异步的内容?
的package.json
{
"name": "generator-debug-test",
"version": "0.1.0",
"description": "",
"files": [
"app",
"router"
],
"keywords": ["yeoman-generator"],
"dependencies": {
"yeoman-generator": "^0.20.2"
}
}
看起来这是我正在使用的MINGW64 bash的问题。如果我切换到本机Windows命令提示符,它会按预期工作。
答案 0 :(得分:0)
Node.js对命令行的支持有点不对劲,特别是对于windows。 https://github.com/nodejs/node/issues/5384
应该在Node.js错误跟踪器上报告在任何提示上使用与readline相关的模块的问题,因为这是一个框架支持问题。