JavaScript にはモジュールに対する組み込みサポートが搭載されていませんが、コミュニティからは驚くべき回避策が生まれています。モジュールを管理するために、パッケージマネージャーと呼ばれるものを使用することができます。これは、検出、インストール、依存関係管理などを処理します。
JavaScript モジュールにとっての重要な(かつ残念ながら互換性のない) 2 つの標準は次のとおりです:
この標準の一番よく使用されている具体例は Node.js モジュールです(Node.js モジュールには CJS を超えるいくつかの機能があります)。その特徴には次のようなものがあります。
この標準の最も一般的な実装は RequireJSです。その特徴には次のようなものがあります。
eval() や静的コンパイルステップなしで動作できます話が出たパッケージマネージャーでは、 npm(Node Packaged Modules)が Node.js にとっての一般的な選択肢です。反対に ブラウザーでは、2 つのオプションがよく使用されています:
通常のウェブ開発では、RequireJS または Browserify などのモジュールシステムを使用する必要があります。ただし、単に素早くハックをまとめたい場合があります。その場合、次の単純なモジュールパターンが役立ちます:
varmoduleName=function(){functionprivateFunction(){...}functionpublicFunction(...){privateFunction();otherModule.doSomething();// implicit import}return{// exportspublicFunction:publicFunction};}();
前述は、グローバル変数 moduleName に格納されるモジュールです。次を実行します
otherModule)privateFunction を持ちますpublicFunction をエクスポートしますウェブページでモジュールを使用するには、 <script> タグを使用してモジュールのファイルとその依存関係のファイルをロードするだけです
<scriptsrc="modules/otherModule.js"></script><scriptsrc="modules/moduleName.js"></script><scripttype="text/javascript">moduleName.publicFunction(...);</script>
モジュールがロードされている間、他のモジュールにアクセスされなければ (moduleName の場合)、モジュールがロードされる順番は重要ではありません。
私のコメントとおすすめ事項を記載します。