Search code examples
node.jsread-eval-print-loop

Is there a way to have node preserve command line history between sessions?


When I run node from the command line with no arguments, I enter an interactive shell. If I execute some commands, exit node, and restart node, the up arrow doesn't do anything (I'd like it scroll through my previous commands).

Is there a way I can invoke node interactively such that it will remember my old commands?


Solution

  • You could use rlwrap to store node.js REPL commands in a history file.

    First, install rlwrap (done easily with a package manager like apt-get or brew etc).

    Then add an alias for node:

    alias node='env NODE_NO_READLINE=1 rlwrap node'
    

    I'm on OSX so I add that alias to my ~/.bash_profile file, and would reload my bash_profile file via source ~/.bash_profile.. and I'm good to go!

    Hope this helps!