node.jscommand-promptread-eval-print-loopnode-repl

How to write multiple lines of code in Node REPL


I would like to evaluate

var foo = "foo";
console.log(foo);

as a block, instead of evaluating line by line

var foo = "foo";
undefined
console.log(foo);
foo
undefined

Is there a simple way to move the prompt to the next line?


Solution

  • Node v6.4 has an editor mode. At the repl prompt type .editor and you can input multiple lines.

    example

    $ node                                                                                                   
    > .editor
    // Entering editor mode (^D to finish, ^C to cancel)
    const fn = there => `why hello ${there}`;
    fn('multiline');
    // hit ^D 
    'why hello multiline'
    > // 'block' gets evaluated and back in single line mode.
    

    Here are the docs on all the special repl commands https://nodejs.org/api/repl.html#repl_commands_and_special_keys