この記事では、CommonJS 仕様とは何ですか? CommonJS の仕様を理解するのに役立つと思います。
前に書きます:
ファイルはモジュールです。
なお、この記事のサンプルコードはnode.js環境で正常に動作する必要があり、正常に動作しないとエラーが発生します。実際、ES6 はすでにモジュール仕様に記載されています。ES6 モジュール仕様を使用する場合、node.js 環境は必要ありません。したがって、commonJS 仕様は ES6 モジュール仕様と区別する必要があります。
1. CommonJS 仕様はなぜ開発されたのですか?
バックエンドでは、JavaScript 仕様が大幅に遅れており、多くの欠陥があるため、JavaScript を使用して大規模なアプリケーションを開発することが困難になっています。例:
モジュールシステムがない
標準ライブラリが少ない
標準インターフェースがない
パッケージ管理システムがない
リストコンテンツ
CommonJS仕様は主にTo向けに提案されていますJavaScript は規格の不足を補い、小規模なブラウザサイド スクリプトを開発する段階に留まらず、Python、Ruby、Java などの大規模なアプリケーションを開発する段階に達しました。
2. CommonJS モジュール仕様
CommonJS モジュール仕様は、主にモジュール参照、モジュール定義、モジュール識別の 3 つの部分に分かれています。
1. モジュールリファレンス
a.js ファイルで次のステートメントを使用する場合、
var math=require('math');
は require() メソッドを使用することを意味し、math モジュールを導入して割り当てます。変数 math に。実際、名前付き変数名とインポートされたモジュール名は、次のように同じである必要はありません:
var Math=require('math');
代入の重要性は、a.js では Math のみが認識されることです。定義されていますが、数学が定義されていないため数学を認識できない変数。
パスありとパスなし
上記の例では、require パラメーターはパスを含まないモジュール名の文字列と参照だけです。は、.js が配置されている現在のディレクトリの node_modules ディレクトリにある数学モジュールです。現在のディレクトリにnode_modulesディレクトリがない場合、またはnode_modulesディレクトリに数学モジュールがインストールされていない場合は、エラーが報告されます。
インポートするモジュールが別のパスにある場合は、相対パスまたは絶対パスを使用する必要があります。例:
var add=require('./add.js')
上記の例では、add.js ファイルは現在のディレクトリが導入され、値が割り当てられ、追加変数が与えられます。
2. モジュール定義
モジュール オブジェクト: 各モジュールでは、モジュール オブジェクトはモジュール自体を表します。
Export 属性: モジュール オブジェクトの属性。外部へのインターフェイスを提供します。
引き続き前の例を使用し、add.js のコードが次のようになっていると仮定します。
function add(num1,num2){ alert(num1+num2); }
a.js ファイルでは add.js ファイルが導入されていますが、前者は依然として後者の関数を追加すると、.js ファイル内の add(3,5) のようなコードは、add が関数ではないことを示すエラーを報告します。
add.js 内の関数を他のモジュールで使用するには、export 属性を使用してこの作業を完了します。 add.js のコードを次のように変更します。
exports.add=function (num1,num2){ alert(num1+num2); }
a.js ファイルは、add.js のメソッドを通常どおり呼び出すことができます。たとえば、add.add(3,5) のような呼び出しは通常どおり実行できます。前の add はこのファイルの add 変数で表されるモジュールを意味し、後の add はモジュールを導入する add メソッドを意味します。
3. モジュール識別
モジュール識別は、require メソッドに渡されるパラメータを指します。これは、キャメル ケースで指定された文字列、または次の形式である必要があります。 .、..、先頭の相対パス、または絶対パス。
3. CommonJS モジュール仕様の利点
CommonJS モジュール仕様は、各モジュールが独立した空間を持ち、相互に干渉しません。他のソリューションと比較すると見劣りします。
CommonJS 標準定義モジュールは非常にシンプルで、インターフェイスは非常に簡潔です。
CommonJS モジュール仕様では、インポートおよびエクスポート機能がサポートされているため、各モジュールをスムーズに接続し、相互の依存関係を実現できます。
以上がCommonJSの仕様とは何ですか? CommonJS 仕様を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。