[Nest.js] Nest.js Read-Eval-Print-Loop (REPL) environment setup quick notes

James ZhangJames Zhang
1 min read

Official doc is already a good place to get started with https://docs.nestjs.com/recipes/repl

REPL is a simple interactive environment that takes single user inputs, executes them, and returns the result to the user. The REPL feature lets you inspect your dependency graph and call methods on your providers (and controllers) directly from your terminal.

For my own specific setup I have

src/repl.ts

/* eslint-disable no-console */
import { repl } from '@nestjs/core';

import AppModule from './app.module';

async function bootstrap() {
  const replServer = await repl(AppModule);
  replServer.setupHistory('.nestjs_repl_history', err => {
    if (err) {
      console.error(err);
    }
  });
}
bootstrap();

And I didn't touch my docker compose. After running nest.js in docker, I just use Docker Desktop's Exec tab (or we can run docker exec shell) to start the REPL console. Note that watch mode is turned off: with it turned on the performance is very laggy.

npm run start -- --entryFile repl

Also consider add .nestjs_repl_history to .gitignore

0
Subscribe to my newsletter

Read articles from James Zhang directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

James Zhang
James Zhang

Founding Engineer at Bazar (General Catalyst backed), Ex Meta Ads MLE, Ex Activision Blizzard Intern