【もじゅーる】

モジュール とは?

💡 プログラムを分けた「交換可能な部品」
📌 このページのポイント
大きなプログラムをモジュールに分割 まとめて1ファイル ログイン処理 メール送信 データ計算 画面表示 ファイル保存 修正が大変… 分割 login.js ログイン処理 email.js メール送信 calc.js データ計算 main.js(メインプログラム) import login from './login.js' import email from './email.js' 必要な部品を組み合わせる 各モジュールは独立しているので、修正・交換・再利用が簡単
大きなプログラムを機能ごとのモジュールに分割することで、修正や再利用がしやすくなる
ひよこ ひよこ

モジュールって何?

ペンギン先生 ペンギン先生

大きなプログラムを機能ごとに分けた「部品」のことだよ。「ログイン処理」「メール送信」「計算処理」みたいにブロックを分けておくと、修正するときに全体を触らなくて済むんだ。

ひよこ ひよこ

分けないとどうなるの?

ペンギン先生 ペンギン先生

全部が1つのファイルに混在していると、どこを直せばいいか分からなくなるよ。バグを直したら別の機能が壊れた…なんてことも起きやすい。モジュールに分けると「ここを直せばここだけ変わる」が明確になるんだ。

ひよこ ひよこ

JavaScriptでimportって書くのがモジュールのこと?

ペンギン先生 ペンギン先生

そうそう!「import { sendEmail } from './email.js'」みたいに、別ファイルのモジュールから機能を読み込んでいるんだ。ライブラリやパッケージもモジュールの集まりだよ。

ひよこ ひよこ

requireとimportって両方あるけど何が違うの?

ペンギン先生 ペンギン先生

実はここがNode.js開発者もよくハマるポイントで、requireはNode.jsで長く使われてきたCommonJSという仕様で、importはより新しいES Modulesという仕様なんだ。Node.jsでは両方が混在することがあって、拡張子が.cjsか.mjsか、package.jsonに「type: module」があるかどうかで挙動が変わる。「importしたはずなのに動かない」「requireがundefinedになる」問題はNode.js開発者でも原因特定に時間がかかることがあるくらい、ハマりやすいポイントだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「モジュール」って出てきたら「プログラムを機能ごとに分けた再利用可能な部品のことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「module」 = 部品・単位
💬 ラテン語のmodulus(小さな尺度)が語源。家具のモジュール家具(規格化された部品)と同じイメージだよ
← 用語集にもどる