9

我想使用 Deno 构建一个 CLI 应用程序,但是我找不到允许我不断提示用户进行交互的模块,类似于 Node.js 上的 REPL 模块的命令行应用程序

有什么建议么?

4

2 回答 2

6

您可以使用它std/io来构建一个 REPL。

import { readLines } from "https://deno.land/std@v0.52.0/io/bufio.ts";


async function read() {
   // Listen to stdin input, once a new line is entered return
   for await(const line of readLines(Deno.stdin)) {
      console.log('Received', line)
      return line;
   }
}

console.log('Start typing');
while(true) {
        await read()
}

您可以从这里构建、处理每一行、添加命令等等。

于 2020-05-21T23:22:31.133 回答
1

如果你只想要一条线,你可以这样做

import { readLines } from "https://raw.githubusercontent.com/denoland/deno/master/std/io/bufio.ts";

const word = (await readLines(Deno.stdin).next()).value.trim()

console.log(`You typed: ${word}`)
D:\WorkSpace\VSCode\deno-play>deno run -A main.ts
hello
You typed: hello

当前的 denoland lib 于 2020 年 6 月 19 日提交

于 2020-06-19T11:10:42.807 回答