node.js - 如何使用quirer.prompt为输入添加前缀

标签 node.js process prompt readline

鉴于以下情况...

var prompts = [{
    type: 'input',
    name: 'message',
    default: 'Some Message'
    message: 'Commit message?',
}]
require('inquirer').prompt(prompts, function(){})

终端将输出以下内容

[?] Commit message? (Some Message) ||

“||”象征着我的光标

如果我按 ENTER 键,而不输入任何内容,查询器将使用(Some Message)作为默认输入值。

但是,如果我输入任何内容,“某些消息会被覆盖”

我想改为执行以下操作

[?] Commit message? || Some Message

“||”象征着我的光标

基本上我想修改默认消息,或者为输入值添加前缀,允许我修改前缀。

我最好的解决方案...但不起作用

var prompts = [{
    type: 'input',
    name: 'message',
    message: 'Commit message?',
    when: function(){
        process.nextTick(function(){
           process.stdout.write('Some Message');
        });
    }
}]
require('inquirer').prompt(prompts, function(){})

这将执行以下操作

[?] Commit message? Some Message ||

“||”象征着我的光标

这似乎可行,但我无法向后移动光标以修改消息。

是否可以将可修改的字符串打印到终端?

最佳答案

这是实现此目的的一种方法:

var Inquirer = require("inquirer");

var chalk = require("chalk");


Inquirer.prompt([
  {
    type: "input",
    message: "Commit message? " + chalk.cyan( "Some Message" ),
    name: "message",
    filter: function(val) {
      return val + " Some Message";
    }
  }
], function( answers ) {
  console.log( JSON.stringify(answers, null, "  ") );
});

您还可以创建自己的提示。

干杯。

关于node.js - 如何使用quirer.prompt为输入添加前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30249114/

相关文章:

node.js - html 文件中的动态内容, Node

java - 如何从调用同一变量的两个线程中获取相同的值?

用户必须进行交互的javascript函数,添加似乎不起作用

javascript - 每当正确回答提示时尝试调出新按钮

javascript - 如何让node js文件在linux中的某个日期的某个时间运行?

使用 nano 和 now.js 进行 JavaScript 回调

node.js - Azure Webapp 在部署时调用哪些 package.json 事件?

php - 在 Apache/PHP 中,如何运行一个独立的进程,并在 linux 上重启 apache 后继续存在

linux - 如何隐藏/更改名称在 ps 的 Bash 脚本中调用的进程

javascript - 如何正确使用var