所以我使用inquirer通过终端向我的用户询问问题:
var inquirer = require('inquirer');
var question = {
name: 'name',
message: '',
validation: function(){ ... }
filter: function(){ ... }
};
,但同时让我的用户通过--name
命令行参数传递这个字段。(如arg.name
)
问题是:我怎样才能告诉询问者把这个arg.name
值当作用户输入这个问题的答案来使用呢?
注意我确实需要验证和过滤器也为这个值启动。(例如,如果通过--name
传递的值无效,则向用户显示错误消息并要求输入另一个值)
我希望有一种方法可以解决这个问题,而不必手动调用我的验证/过滤方法。
您可以为arg.name:
中的变量设置一个默认值let argument = args.name;
const question = {
name: 'name',
message: 'Name?',
default: argument
};
我试着测试这个,它工作。用户只需要按回车键就可以使用参数中传递的名称,所以可能会在提示符中告诉他们。还要注意,您的验证将在您的过滤器之后进行。您只需要确保您的过滤器所做的一切都将通过验证。