CJS (CommonJS) および MJS (ES モジュール) という用語は、JavaScript でコードを再利用可能なコンポーネントに編成するために使用される 2 つのモジュール システムを指します。 。両者の比較は次のとおりです:
1.CommonJS (CJS)
-
構文: CommonJS は、require() を使用してモジュールと module.exports をロードするか、exports を使用してそれらをエクスポートします。
-
使用場所: これは、ES モジュールの導入前に主に Node.js で使用されていたモジュール システムです。
-
同期ロード: CommonJS モジュールは 同期 でロードされます。つまり、モジュールがロードされるまで実行がブロックされます。これはサーバー側のアプリケーションには理想的ですが、非同期読み込みが優先されるクライアント側のコードにはあまり適していません。
-
例:
// Import
const fs = require('fs');
// Export
module.exports = function () {
console.log("Hello from CJS");
};
ログイン後にコピー
2.ES モジュール (MJS)
-
構文: ES モジュールはインポートおよびエクスポート ステートメントを使用します。
-
使用場所: 最新の JavaScript 環境、ブラウザーと Node.js (拡張子 .mjs を使用するか、package.json の "type": "module" を使用) の両方。
-
非同期読み込み: ES モジュールは 非同期 で読み込まれます。これはクライアント側の環境に適しています。
-
例:
// Import
import fs from 'fs';
// Export
export function greet() {
console.log("Hello from MJS");
}
ログイン後にコピー
主な違い:
-
読み込みメカニズム:
-
CJS: モジュールは同期的にロードされます。
-
MJS: モジュールは非同期でロードされるため、特定のシナリオ (特にブラウザー) ではブロックされず、より効率的になります。
-
構文:
-
CJS: require() と module.exports を使用します。
-
MJS: インポートとエクスポートを使用します。
-
互換性:
-
CJS: Node.js で広くサポートされていますが、ブラウザーとの互換性は低くなります (バンドラーなし)。
-
MJS: ES6 モジュール標準に準拠した、最新のブラウザおよび Node.js (バージョン 12 以降) でのネイティブ サポート。
-
デフォルトのエクスポート:
-
CJS: オブジェクトまたは関数をモジュールとして直接エクスポートできます。
-
MJS: 名前付きエクスポートとデフォルトのエクスポートの両方をサポートし、複数の関数または値をより柔軟にエクスポートできます。
いつ使用するか:
-
CJS (CommonJS): CommonJS モジュール システムに基づく古い Node.js プロジェクトまたは既存のライブラリを使用する場合。
-
MJS (ES モジュール): 最新のアプリケーション、特に最新のランタイムを対象とするクライアント側開発または Node.js プロジェクトを構築する場合。
現代の開発では、ES モジュールが標準になりつつありますが、多くのレガシー プロジェクトは依然として CommonJS に依存しています。
以上がCJSとMJSの違いを理解しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。