🤔
Node.jsのrequireの挙動を調べてみた
皆が使ってるし~という事で実行しがちなOMAJINAI WORDのrequire。
requireの挙動ってどうなってるんだろうと思ったので、公式ドキュメントやらブログで探してみました。
そもそもrequireとは
requireはもともとcommonJSにある組み込み関数です。
console.log同様、もともと使える関数なので、準備などは不要です!(めちゃ便利)
1. 別のディレクトリにあるjsファイルのモジュールを使いたい時
exports.sum = function(x, y) {
return x + y;
}
exports.minus = function(x, y) {
return x - y;
}
const calculation = require('./calculation.js') //ファイル名を指定
console.log(calculation.sum(1, 2));
console.log(calculation.minus(5, 4));
2. npm installしたNPMモジュールを使いたい時
const http = require('http'); //モジュール名を指定
require時の挙動
requireで指定されたJavaScriptファイルを読み込み、そのファイルを実行してexportsオブジェクトを返却します。この「ファイル読み込み・実行・exportsオブジェクトの返却」という流れは最初の一回のみで、その後はキャッシュされるような仕組みになっています。
Discussion