JavaScript モジュールは、コードの整理、再利用性の強化、アプリケーションの保守性の向上において重要な役割を果たします。広く使用されている 2 つの主要なモジュール システムは、CommonJS (CJS) と ECMAScript Modules (ESM) です。それらの違いと機能を理解することは、プロジェクトでそれらを効果的に活用するための鍵となります。
CommonJS は、もともと Node.js 環境用に設計されたモジュール システムです。シンプルさとモジュールの同期ロードを重視しています。
CommonJS のモジュールは、module.exports を使用して値、オブジェクト、または関数をエクスポートします。
1.デフォルトのエクスポート/インポート
// logger.js function log(message) { console.log(message); } module.exports = log; // Default export // index.js const log = require('./logger'); log('This is a log message.'); // Output: This is a log message.
2.名前付きエクスポート/インポート
// math.js function add(a, b) { return a b; } function subtract(a, b) { return a - b; } module.exports = { add, subtract }; // Named exports // index.js const { add, subtract } = require('./math'); console.log(add(5, 3)); // Output: 8 console.log(subtract(5, 3)); // Output: 2
ES6 (ES2015) で導入された ESM は、JavaScript の標準化されたモジュール システムです。同期モジュールと非同期モジュールの両方の読み込みをサポートしており、最新のブラウザーと特定の構成の Node.js でネイティブにサポートされています。
ESM は、エクスポート ステートメントを使用して値、オブジェクト、または関数をエクスポートします。
1.デフォルトのエクスポート/インポート
// utils.mjs (Note the .mjs extension for ESM) function formatName(name) { return `Mr./Ms. ${name}`; } export default formatName; // index.mjs import formatName from './utils.mjs'; console.log(formatName('John')); // Output: Mr./Ms. John
2.名前付きエクスポート
// operations.mjs export function multiply(a, b) { return a * b; } export function divide(a, b) { return a / b; } // index.mjs import { multiply, divide } from './operations.mjs'; console.log(multiply(4, 2)); // Output: 8 console.log(divide(10, 2)); // Output: 5
3. ECMAScript モジュールの混合エクスポート スタイル
// mixedExports.mjs function greet(name) { return `Hello, ${name}!`; } export default greet; export function goodbye(name) { return `Goodbye, ${name}!`; } // index.mjs import sayHello, { goodbye } from './mixedExports.mjs'; console.log(sayHello('Alice')); // Output: Hello, Alice! console.log(goodbye('Bob')); // Output: Goodbye, Bob!
CommonJS モジュールと ECMAScript モジュールのどちらを選択するかは、プロジェクトの環境と要件によって異なります。 CommonJS は Node.js バックエンド開発に堅牢ですが、ESM はブラウザーと最新の Node.js アプリケーション間の相互運用性を提供します。これらのモジュール システムを理解すると、開発者は JavaScript のモジュール機能を効果的に利用できるようになります。
CommonJS または ESM を活用することで、開発者はコードの編成を強化し、プロジェクトのスケーラビリティを向上させ、JavaScript プロジェクトでのコラボレーションを促進できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3