ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScriptモジュール(ESM、CommonJS)を使用してコードを整理するにはどうすればよいですか?

JavaScriptモジュール(ESM、CommonJS)を使用してコードを整理するにはどうすればよいですか?

Robert Michael Kim
リリース: 2025-03-18 15:11:34
オリジナル
188 人が閲覧しました

JavaScriptモジュール(ESM、CommonJS)を使用してコードを整理するにはどうすればよいですか?

JavaScriptモジュールを使用すると、ESモジュール(ESM)またはCommonJSのいずれかが、プロジェクトをより小さく、再利用可能な、管理可能なピースに分割できるようにすることで、コードの編成を大幅に改善できます。両方のタイプのモジュールを使用する方法は次のとおりです。

ESモジュール(ESM):
ESMは、JavaScriptモジュールの最新の標準です。 ESMを使用するには、次の手順に従うことができます。

  1. ファイルネーミングコンベンション:モジュールファイルに.jsまたは.mjsを使用します。 .mjs拡張機能は、デフォルトではESMとして.jsをまだサポートしていない環境のESM専用です。
  2. エクスポート:モジュールから機能、クラス、または変数をエクスポートするには、 exportキーワードを使用します。例えば:

     <code class="javascript">// math.js export function add(a, b) { return ab; } export const PI = 3.14;</code>
    ログイン後にコピー
  3. インポート:別のファイルでエクスポートされたアイテムを使用するには、 importステートメントを使用します。

     <code class="javascript">// main.js import { add, PI } from './math.js'; console.log(add(2, 3)); // Output: 5 console.log(PI); // Output: 3.14</code>
    ログイン後にコピー

commonjs:
CommonJSは、node.js環境で広く使用されています。使用方法は次のとおりです。

  1. ファイルネーミングコンベンション:モジュールファイルに.jsを使用します。 CommonJSは、node.jsのデフォルトモジュールシステムです。
  2. エクスポート:エクスポートするには、 module.exportsを使用します。

     <code class="javascript">// math.js function add(a, b) { return ab; } const PI = 3.14; module.exports = { add, PI };</code>
    ログイン後にコピー
  3. インポート:インポートするには、 require関数を使用します。

     <code class="javascript">// main.js const { add, PI } = require('./math.js'); console.log(add(2, 3)); // Output: 5 console.log(PI); // Output: 3.14</code>
    ログイン後にコピー

これらのモジュールシステムを使用することにより、コードを論理部品に分割し、維持、テスト、再利用を容易にすることができます。

ESMとCommonJSの重要な違いは何ですか?また、プロジェクト構造にどのように影響しますか?

ESMとcommonJSの重要な違いは次のとおりです。

  1. 構文:

    • ESMは、 importおよびexportキーワードを使用します。
    • commonjsはrequiremodule.exportsを使用します。
  2. ロードメカニズム:

    • ESMは非同期であり、輸入の静的な分析を使用しているため、バンドラーによる木の揺れや最適化が改善されます。
    • CommonJSは同期しており、動的要求システムを使用します。これにより、循環依存性がより簡単につながる可能性があります。
  3. トップレベルawait

    • ESMはトップレベルのawaitをサポートしており、非同期関数にコードを包むことなくawaitでいます。
    • CommonJSは、トップレベルのawaitをサポートしていません。
  4. モジュール解像度:

    • ESMは別のモジュール解像度アルゴリズムを使用して、プロジェクトのファイルシステムの構造に影響を与える可能性があります。たとえば、ESMは、ディレクトリをインポートするときにフォルダー内のindex.jsまたはindex.mjsを探します。
    • 一般的な解像度はより単純で、通常はnode.jsパス解像度ルールに従います。

プロジェクト構造への影響:

  • モジュール性と組織: ESMは、その静的な性質により、よりクリーンで保守可能なコードベースにつながる可能性があるため、よりモジュール構造を奨励します。
  • 相互運用性: ESMを使用するプロジェクトは、特に古いライブラリまたはnode.jsバージョンで作業する場合、CommonJSモジュールで相互運用性を処理する必要がある場合があります。
  • バンドリングとビルドツール: ESMは、ESMとCommonJSの設定が異なるWebpackやRollUpなどのビルドおよびバンドルツールの構成方法に影響を与える可能性があります。

プロジェクトでJavaScriptモジュールを使用するときに、依存関係を効果的に管理するにはどうすればよいですか?

依存関係を効果的に管理することは、健康でパフォーマンスのあるプロジェクトを維持するために重要です。ここにいくつかの戦略があります:

  1. パッケージマネージャーの使用:

    • NPMやYARNなどのツールは、外部依存関係の管理に役立ちます。使用している依存関係のバージョンを使用して、常にpackage.json最新の状態に保ちます。
  2. セマンティックバージョン:

    • セマンティックバージョン(SEMVER)を使用して、依存関係バージョンを管理します。このプラクティスは、プロジェクトに対する依存関係の更新の影響を理解するのに役立ちます。
  3. 依存関係監査:

    • npm audityarn auditなどのツールを使用して、セキュリティの脆弱性に対する依存関係を定期的に監査します。
  4. ピア依存関係:

    • ピア依存関係に注意してください。特に同じライブラリに依存しているが、おそらく異なるバージョンに依存する複数のパッケージを使用する場合、プロジェクトの仕組みに影響を与える可能性があります。
  5. 木の揺れ:

    • ESMと最新のビルドツールのツリーシェーキング機能を利用して、バンドルサイズを削減し、パフォーマンスを向上させることができる未使用のコードを排除します。
  6. 依存関係の視覚化:

    • npm lsや専用の視覚化ツールなどのツールを使用して、依存関係ツリーを理解し、潜在的な問題や不必要な依存関係を特定します。
  7. ローカル開発:

    • 可能であれば、依存関係のローカル開発を使用して、リモートレジストリに公開する必要なく、変更をすばやく反復およびテストします。

JavaScriptモジュールがスケーラブルで保守可能であることを確認するために、どのようなベストプラクティスをフォローする必要がありますか?

JavaScriptモジュールがスケーラブルで保守可能であることを確認するには、これらのベストプラクティスに従ってください。

  1. 単一の責任の原則:

    • 各モジュールには、単一の目的または責任が必要です。これにより、理解し、テストし、維持しやすくなります。
  2. 明確で説明的な命名:

    • モジュール、関数、および変数に明確で説明的な名前を使用します。これは、他の開発者があなたのコードの目的を理解するのに役立ちます。
  3. モジュラー化と再利用:

    • アプリケーションを、プロジェクト全体で再利用できる小さな独立したモジュールに分割します。これにより、コードの複製が減少し、スケーラビリティが向上します。
  4. 一貫した輸出およびインポートスタイル:

    • モジュールをエクスポートしてインポートするための一貫したスタイルに固執します。名前付きまたはデフォルトのエクスポートのいずれかを選択し、プロジェクト全体で均一に使用します。
  5. 円形の依存関係を避けてください:

    • モジュールを構成して、円形の依存関係を回避します。これにより、コードの読み込みと維持の問題につながる可能性があります。
  6. 可能であればESモジュールを使用します。

    • 最新の機能と、将来のJavaScript開発のより良いサポートにより、新しいプロジェクトのCommonJSよりもESモジュールを好みます。
  7. テストと糸くず:

    • 自動テストと糸くずを実装して、早期にエラーをキャッチし、コードの品質を確保します。テスト用のJestなどのツールを使用し、糸くずにはEslintを使用します。
  8. ドキュメント:

    • モジュールを文書化し、目的、使用法、および非自明な機能を説明します。これにより、他のチームメンバー(または将来のお客様)がコードをより簡単に理解するのに役立ちます。
  9. バージョンコントロール:

    • GITなどのバージョン制御システムを使用して、変更を追跡し、他の人と協力します。このプラクティスは、スケーラブルなコードベースを維持するために不可欠です。
  10. 継続的な統合と展開(CI/CD):

    • CI/CDパイプラインをセットアップして、テスト、構築、展開を自動化します。これにより、一貫性を維持し、さまざまな環境でモジュールが期待どおりに機能するようにします。

これらのプラクティスに従うことにより、スケーリング、維持、理解しやすいJavaScriptプロジェクトを構築できます。

以上がJavaScriptモジュール(ESM、CommonJS)を使用してコードを整理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート