1. ホーム
  2. javascript

ブラウザでCommonJSモジュールを'require'するには?[クローズド]。

2023-11-23 11:48:52

質問

ブラウザでクライアントサイドのJavaScriptコードとしてCommonJSモジュールをロードするための最良の方法は何ですか?

CommonJS モジュールは、その機能を module.exports 名前空間内に置かれ、通常は require(pathToModule) を使ってサーバサイドスクリプトに含まれます。クライアントでそれらを読み込むと、同じようには動作しません (require を置き換える必要がある、非同期性を考慮する必要があるなど)。

私はモジュールローダーや他の解決策を見つけました。Browserify、RequireJS、yabbleなど、または単にモジュールを変更する方法を見つけました。何が最良の方法だと思いますか、そしてその理由は?

どのように解決するのですか?

私は RequireJS を過去に広く使ってきました (実装は BBC iPlayer を実装)、うまく動作しています。CommonJSモジュールを扱うことができますが、追加のラッパーが必要で、それが煩わしいと思います。

Node.jsでこれらのモジュールを使用したい場合、サーバー側でもRequireJSを使用する必要があります。これはNode.jsのJavaScriptコードのイディオムではないので、私は好きではありません。

私は webmake ブラウザ化 を使用しています。当初は、コンパイルの手順が私を遠ざけたのですが、今年になって広範囲に使用した結果、これは問題ではないと言えるでしょう。

Browserify にはウォッチ機能が含まれており、これは非常によく機能します。Webmake はウォッチャーにフックすることができます (たとえば ウォッチャ のような) ウォッチャーに接続するか、あるいは webmake-middleware モジュールを使用することもできます。これは Express.js または connect アプリケーションの一部として使用することができます。これは、保存のたびに JavaScript をコンパイルするのではなく、実際に要求されたときにのみコンパイルされるという利点があります。

接続 を使えば、サーバ(静的)を作るのは簡単なので、バックエンドなしでフロントエンドを開発したい場合は、ファイルを提供するための小さな静的Node.jsサーバを作ることができます。

ボーナス: 常にビルドされたコードを扱うので、ビルドスクリプトは必要ありません。