所以我使用inquirer通过终端向我的用户提问:
var inquirer = require('inquirer');
var question = {
name: 'name',
message: '',
validation: function(){ ... }
filter: function(){ ... }
};
但同时让我的用户通过--name
命令行参数传递此字段。 (比如arg.name
)
问题是:我如何告诉询问者采用此arg.name
值并使用它,就好像用户输入该值来回答此问题。
注意我需要验证和过滤器才能启动此值。 (例如,如果通过--name
传递的值无效,则会向用户显示错误消息并要求输入另一个值)
我希望有一种方法可以解决这个问题,而无需手动调用我的验证/过滤方法。
答案 0 :(得分:1)
您可以为arg.name中的变量设置默认值:
let argument = args.name;
const question = {
name: 'name',
message: 'Name?',
default: argument
};
我尝试对此进行测试,并且可以正常工作。用户只需按Enter即可使用在参数中传递的名称,因此可以在提示中告诉他们。另请注意,您的验证将在过滤器之后进行。您只需要确保过滤器所做的任何事情都会通过验证。