Node.js REPL モジュール
REPL はRead-Eval-Print Loop(読み取り-評価-出力ループ)の略で、シンプルな対話型プログラミング環境です。REPL 環境では、コードを入力するとすぐに実行結果を確認でき、コードスニペットの簡単なテストや新しい概念の学習に最適です。
Node.js には REPL 環境が組み込まれており、次の方法で起動できます:
node
REPL の基本機能
- 読み取り(Read):ユーザーが入力した JavaScript コードを読み取ります
- 評価(Eval):入力されたコードを実行します
- 出力(Print):実行結果を出力します
- ループ(Loop):ユーザーが終了するまでこのプロセスを繰り返します
Node.js REPL の基本的な使い方
REPL の起動
ターミナルに直接nodeコマンドを入力すると REPL 環境に入れます:
例
Welcome to Node.js v16.14.0.
Type ".help" for more information.
>
基本操作
JavaScript コードの実行:
例
2
変数の定義:
例
undefined
> x * 2
20
複数行の入力:未完了の式を入力すると、REPL は自動的に複数行モードになります:
例
... return a + b
... }
undefined
> add(2, 3)
5
REPL の終了:
- Ctrl+C を2回押す
- 入力する
.exit - Ctrl+D を押す
REPL の特殊コマンド
Node.js REPL には、ドット(.)で始まる特殊コマンドがいくつか用意されています:
よく使うコマンド
| コマンド | 説明 |
|---|---|
| .help | すべての REPL コマンドを表示 |
| .break | 複数行入力を終了 |
| .clear | REPL コンテキストをリセット |
| .save | 現在のセッションをファイルに保存 |
| .load | ファイルからセッションを読み込む |
| .editor | エディターモードに入る |
サンプル
現在のセッションを保存:
例
セッションを読み込む:
例
エディターモードに入る:
例
// エディターモードに入り、複数行のコードを入力できます
// Ctrl+D を押してコードを実行します
REPL の高度な機能
カスタム REPL 環境
プログラミングでカスタム REPL 環境を作成できます:
例
// カスタム REPL の作成
const myRepl = repl.start({
prompt: 'MyNode> ',
useColors: true
});
// カスタムコマンドの追加
myRepl.defineCommand('sayhello', {
help: 'Say hello',
action(name) {
this.clearBufferedCommand();
console.log(`Hello, ${name || 'stranger'}!`);
this.displayPrompt();
}
});
REPL コンテキスト
事前に変数や関数を REPL コンテキストに追加できます:
例
const r = repl.start();
r.context.myVar = 'Hello from context';
r.context.myFunc = () => 'Hello from function';
REPL 内でこれらの変数や関数を直接使用できます:
例
'Hello from context'
MyNode> myFunc()
'Hello from function'
REPL サーバー
ネットワーク REPL サーバーを作成することもできます:
例
const repl = require('repl');
net.createServer((socket) => {
repl.start({
prompt: 'Remote> ',
input: socket,
output: socket,
terminal: true
}).on('exit', () => {
socket.end();
});
}).listen(8080);
REPL の実際の活用シーン
1. コードスニペットの素早いテスト
REPL は、ファイルを作成せずに JavaScript コードスニペットをテストする最も簡単な方法です。
2. 学習と実験
新しい JavaScript の機能や Node.js API を学ぶのに最適です。
3. デバッグ
REPL で変数の値をすばやく確認したり、関数の動作をテストしたりできます。
4. プロトタイプ開発
開発初期に、REPL を使ってアイデアをすばやく検証できます。
REPL の活用テクニック
1. _ 変数を使う
REPL は直前の式の結果を__ 変数に格納します:
例
4
> _ * 3
12
2. オートコンプリート
Tab キーを押すと、変数名、オブジェクトのプロパティ、グローバルオブジェクトを自動補完できます。
3. 履歴コマンド
上下の矢印キーを使って履歴コマンドを参照できます。
4. エディターモード
複雑な複数行コードには、.editorコマンドを使うと便利です。
まとめ
Node.js の REPL モジュールは強力な対話型プログラミング環境であり、以下の特徴があります:
- JavaScript コードをすばやくテストする機能を提供
- カスタム設定と拡張をサポート
- 便利な組み込みコマンドと機能を多数搭載
- 学習、デバッグ、プロトタイプ開発に使用可能
初心者から経験豊富な開発者まで、REPL は非常に価値のあるツールであり、しっかりと習得する価値があります。
その他の拡張
Node.js 組み込みモジュール