默认情况下,在把输出写入到提供的可写流(默认为 process.stdout)之前,[repl.REPLServer] 实例会使用 [util.inspect()] 方法对输出进行格式化。 showProxy 检查选项会默认设置为 true,colors 选项会设置为 true,具体取决于 REPL 的 useColors 选项。

    可以在构造时指定 useColors 布尔值选项,以指示默认的编写器使用 ANSI 样式代码来着色来自 util.inspect() 方法的输出。

    如果 REPL 作为独立程序运行,则还可以使用 inspect.replDefaults 属性从 REPL 内部更改 REPL 的检查默认值[util.inspect()],该属性是 [util.inspect()] 中的 defaultOptions 的镜像。

    1. > util.inspect.replDefaults.compact = false;
    2. false
    3. > [1]
    4. [
    5. 1
    6. ]
    7. >

    在构造时,通过在 writer 选项传入一个新的函数,可以完全地自定义一个 [repl.REPLServer] 实例的输出。 例子,把输入的任何文本转换为大写:

    1. const repl = require('repl');
    2. const r = repl.start({ prompt: '> ', eval: myEval, writer: myWriter });
    3. function myEval(cmd, context, filename, callback) {
    4. callback(null, cmd);
    5. }
    6. function myWriter(output) {
    7. return output.toUpperCase();
    8. }