1

我有这样的功能:

const runInteractive = (rows, dups) => {
  const keys = new Set(dups);

  const questions = _(rows)
    .filter(row => keys.has(row.key))
    .groupBy(row => row.key)
    .map((rows, key) => ({
      type: 'list',
      name: key.replace('.', ','),
      message: `Pick a value for ${key}`,
      choices: rows.map(row => ({ name: row.value, value: row, short: '✔' }))
    }))
    .value();

  return inquirer
    .prompt(questions)
    .then(answers => _.sortBy(rows.filter(row => !keys.has(row.key)).concat(Object.values(answers)), row => row.key));
};

我从 shebang 节点脚本调用它。

该过程正在显示询问者提示,然后死亡。

我怎样才能让它活着让用户输入输入?

4

1 回答 1

0

我知道这个问题很老,但是经过几天的努力,我想通了,并认为我会发布答案

至少在 macOS/linux 上,你可以做这样的事情 -

#!/bin/bash    

exec < /dev/tty;

node /path/to/node/file.js

file.js你的询问者提示住在哪里。当您调用 时exec < /dev/tty,即使您的脚本在没有 TTY 的上下文中执行,您是否也启用了用户输入的捕获。

于 2018-12-11T19:46:42.120 回答