我目前正在使用在REPL模式下使用Vorpal的第三方应用程序。我正在尝试使用Vorpal中的@extend
函数自动化一些部署配置,以便在我的项目中使用。一切正常,直到有提示。那时,我的执行挂起,直到我做一些手动步骤(这不是我想要的),我才能进步。
我查看了文档,但没有任何提及任何技巧。我想避免深入更改现有代码,但如果需要使用选项,我会这样做。
以下是我的代码示例: https://gist.github.com/gretro/b67aa364967c3fa2c82279b7e4236c2e
我有什么遗漏或可以用来做我需要做的事吗?
答案 0 :(得分:0)
下面的代码可能会有所帮助,可以使用exec命令调用带有或不带有命令行参数的vorpal命令,如果没有,则提示输入用户名和密码。这是你所追求的吗?
/*jshint esversion: 6 */
const vorpal = require('vorpal')();
vorpal
.delimiter('vorpal$')
.command('logon [uname] [pwd]', 'logs you on.')
.action(function(args, callback) {
var the_username = "";
var the_password = "";
if (args.uname !== undefined) {
the_username = args.uname;
the_password = args.pwd;
console.log("The username was: "+the_username);
console.log("The password was: "+the_password);
} else {
let questions = [
{
type: 'input',
name: 'username',
message: 'Enter username: '
},
{
type: 'password',
name: 'password',
message: 'Enter password: '
}
];
this.prompt(questions, function (answers){
the_username = answers.username;
the_password = answers.password;
console.log("The prompted username was: "+the_username);
console.log("The prompted password was: "+the_password);
});
}
});
vorpal.show();
// Uncomment the appropriate exec command, the one with arguments,
// or the one that prompts for the username/password.
// vorpal.exec('logon auser apassword');
vorpal.exec('logon');
执行如下:
vorpal$
The username was: auser
The password was: apassword
或者这样:
vorpal$
Enter username: fdfss
Enter password: ******
The prompted username was: fdfss
The prompted password was: fdfsdf