#17 JavaScriptで学ぶモジュールとパッケージの基本

JavaScriptでファイルを分けて整理する仕組みは、比較的新しいバージョンで統一され、以前より扱いやすくなりました。この記事では、JavaScriptにおけるモジュールの基本と、2つの形式の違いを解説します。

exportとimportの基本

// utils.js
export function greet(name) {
    console.log(`こんにちは、${name}さん`);
}
// main.js
import { greet } from './utils.js';

greet("太郎");

exportを付けた機能だけが、他のファイルから読み込めるようになります。複数の機能をまとめてエクスポートすることもできます。

export function greet(name) { ... }
export function farewell(name) { ... }

// main.js
import { greet, farewell } from './utils.js';

デフォルトエクスポート

1つのファイルにつき1つだけ、export defaultを使った特別な書き方もあります。

// utils.js
export default function greet(name) { ... }

// main.js
import greet from './utils.js'; // {} を付けずに読み込める

export defaultで書かれたものは、読み込む側で好きな名前を付けて受け取れます。「そのファイルが主に提供する1つの機能」を表す場合によく使われます。

CommonJSという古い形式

Node.jsでは長らく、requireとmodule.exportsを使うCommonJSという形式が使われてきました。

// utils.js(CommonJS形式)
module.exports.greet = function(name) { ... };

// main.js
const { greet } = require('./utils.js');

JavaScriptならではの注意点

以前の記事でも触れましたが、JavaScriptにはrequireを使う古い形式(CommonJS)と、importを使う新しい形式(ES Modules)が混在しています。import文を使ったのに動かない場合は、実行環境の設定(package.jsonのtypeフィールドなど)がES Modulesに対応しているか確認しましょう。新しいプロジェクトを始める際は、基本的にES Modules形式で統一するのがおすすめです。

まとめ

JavaScriptのモジュールはexport・importが基本です。export defaultとの使い分けや、CommonJSとの違いに注意しながら進めましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

JavaScriptをもっと学びたい方には「改訂新版JavaScript本格入門」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本