#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専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿