ブラウザでCommonJSモジュールを'require'するには?[クローズド]。
質問
ブラウザでクライアントサイドの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サーバを作ることができます。
ボーナス: 常にビルドされたコードを扱うので、ビルドスクリプトは必要ありません。
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み] Node.jsのnpmモジュールをアンインストールするにはどうすればよいですか?
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] JavaScript のオブジェクトの配列を比較し、最小値/最大値を取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] Reactコンポーネントでthis.setStateを複数回使用するとどうなりますか?
-
[解決済み] Javascript / jQueryでAndroid端末を検出する。
-
[解決済み] コールバック地獄とは何か、RXはそれをどのように、そしてなぜ解決するのか?
-
[解決済み] ECMAScriptとは?
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] 各オブジェクトに?重複