Portrait Dr. Axel Rauschmayer
Dr. Axel Rauschmayer
Homepage | Twitter
Cover of book “Exploring ES6”
Book, exercises, quizzes
(free to read online)
Logo of newsletter “ES.next news”
Newsletter (free)
Cover of book “JavaScript for impatient programmers”
Book (free online)

Execute code each time the Node.js REPL starts

[2011-11-17] dev, nodejs, repl, javascript
(Ad, please don’t block)

If you start the Node.js binary without any arguments, you are in the REPL (Read-Eval-Print-Loop), a JavaScript command line. This post shows you how to execute code each time the REPL starts. That allows you to, say, automatically load modules you want to use.

I have not found a way to perform the code execution via a configuration file, but you can make it happen via the following trick: Write a script that executes the code and then programmatically starts a REPL. Example: The following are the contents of a file called startnode.js.

    #!/usr/local/bin/node

    var repl = require("repl");
    var context = repl.start("$ ").context;
    
    // Configure what’s available in the REPL
    context.util = require("util");
Under Unix, the first line lets you run startnode.js as a command, if you make it executable.
    rauschma> chmod u+x startnode.js 
    rauschma> ./startnode.js
    $ util.log("hello")
    17 Nov 21:39:29 - hello
You can also use the following command to run it (with or without the first line):
    rauschma> node startnode.js
The Node.js documentation has more information on the REPL API and on commands that are available while running it. For example:
    $ .help
    .break	Sometimes you get stuck, this gets you out
    .clear	Break, and also clear the local context
    .exit	Exit the repl
    .help	Show repl options
Related post: