業務で行うことはまずないですが、require を使うとこんなこともできるという紹介です。
require は外部ファイルを読み込むための関数的な使い方をするキーワードです。これは次の様に使えます。
JavaScript コードモジュールの利用 – Mozilla | MDN
/** hoge.js */ module.exports = "hogehogehoge" /** call.js */ const hoge = require('./hoge.js') console.log(hoge) // hogehogehoge
同じような動きをする import があります。普段はこちらの方をよく使います
import – JavaScript | MDN
/** hoge.js */ export default "hogehogehoge" /** call.js */ import hoge from './hoge.js'; console.log(hoge) // hogehogehoge
上記の例では同じ動きをするのですが実はこの二つはコードの読み込みタイミングが異なります。import はあらかじめ読み込まれ(コードをマシンに実行可能な語に変換してメモリ等どこかに展開)、require はその場で読み込みと実行をします。このため次のコード例の動作が起きます。
/** hoge.js は存在しない */ /** call.js */ const fs = require('fs'); // hoge.js をプログラム内で生成する fs.writeFileSync('./hoge.js', 'module.exports = "hogehogehoge"') // 生成された hoge.js を require する const hoge = require('./hoge.js') console.log(hoge) // hogehogehoge が出力される
これを挙動を利用することで外部に中間コードを出力してそれを再利用するスクリプトを動かせます。例では簡易な JavaScript のみのコードなのであまり恩恵がわかりませんが、スクリプトの途中に別言語のプログラムの実行を挟んでその別言語プログラムの巨大な出力結果を JavaScript でプログラムとして扱って処理を続行、といったことや、あるコードを元に生成したコードを実行してそのコードを元に……、と連鎖させたい時などで便利です。