問題タブ [amd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - ビルド時にすべてのファイルを連結しているのに、なぜ require.js を使用する必要があるのですか?
モジュール化された独立したテスト可能なコードを作成することは、特に大きなプロジェクトの場合、非常に理にかなっています。
しかし、ビルド時にプロジェクトを連結および縮小する必要がある大きなプロジェクトでrequire.js
/を使用すると、どのような違いがありますか?amd
javascript - AMDを使用して、jQueryおよびその他のサードパーティライブラリをモジュールとしてTypeScriptにインポートします
質問:AMDサポートを使用して(コンパイラを介して)jqueryをTypeScriptモジュールにインポートして、依存関係としてjqueryを含める方法はありますか?
重要なのは、インポートステートメントを取得することです。これにより、モジュールが定義ステートメントの依存関係になります(以下を参照)。
詳細:jquery(およびその他のサードパーティライブラリ)をAMDでTypeScriptモジュールとしてインポートしたい。目標は、それらを依存関係としてrequire
リストに表示することです。ただし、これを行うためにTypeScriptを作成する唯一の方法は、import
ステートメントを持つことであるように見えます。また、インポートするには、インポートするモジュールが必要です。しかし...ポイントするjqueryモジュールはありません。に。
回避策:
- require.jsのmain.jsで.d.tsとプリロードjqueryを参照できますが、それはすべてのサードパーティライブラリをプリロードすることを意味します。ひどいわけではありませんが、JavaScriptとAMDですでに実行できることを利用していないため、理想的でもありません。
- サードパーティのライブラリごとにモジュールを作成してラップすることはできますが、$。$のようなものが得られます。さらに悪いことに、IMO(およびIriskがこれらのそれぞれに間違ったモジュールコードを記述し、同期がとれていない)。
したがって、今のところ、main.jsにjqueryをプリロードしているだけです。しかし、繰り返しますが、これは理想的とは言えません。モジュールを持たないノックアウト、バックボーンなどのライブラリに対してこれを行う必要があります。
より良い提案や私が欠けているものはありますか?
更新/明確化:
ライブラリ間の依存関係については、構成でシムを使用することもできます。ただし、これでもサードパーティのものがプリロードされます。例:
backbone.js - RequireJSがこの依存関係をロードしないのはなぜですか?
次の「メイン」モジュールを実行すると、「TypeError:OrdersPageはコンストラクターではありません」というメッセージが表示されます。
function(OrdersPage)内にいるとき、「OrdersPage」は未定義であることがわかりました。したがって、問題は、OrdersPageを依存関係として定義しているにもかかわらず、なぜそれが未定義なのかということです。
これが実際にヒットしているOrdersPageのコードですが、上記のエラーが出力された後は次のようになります。
要約すると、コンソール出力は次のとおりです。
これは、「メイン」モジュールがロードされて実行された後にOrdersPageモジュールがロードされていることを示していますが、これは遅すぎます。
編集1 この問題を示す非常に単純なプロジェクトがここにあります。
編集 2RequireJS構成でバックボーンをすでに宣言しています。
javascript - 部分最適化に RequireJS オプティマイザーを使用する
RequireJS を使用して多数の JavaScript ファイルを最適化しようとしていますが、オプティマイザを使用してスクリプトを適切に構築し、それらをブラウザに適切な方法でロードする方法に頭を悩ませています。
以下の説明は具体的なものですが、他にも多くの人が同じ課題に直面していると思います。(または、彼らは要件でより賢明な選択をしました!)
bowerを使用してスクリプトのカタログをダウンロードしています。これらのスクリプト (またはその一部) を Web ページに含めたいと考えています。
さらに、テスト中は、基本的にブラウザーに個々の bower スクリプトを取得させたくありません。ローカル テスト フレームワークは要求に連続して応答するため、これは非常に低速です。RequireJS オプティマイザーまたはその他の方法を使用して、ダウンロードしたすべての bower スクリプトを 1 つのファイルに結合したいと考えています。
対照的に、私自身のコードは Coffeescript ファイルの長いリストに分割されており、RequireJS CS プラグインを使用してそれらをブラウザー用にコンパイルしたいと考えています。
そのときの開発では、ブラウザが次のようなものをロードすることを期待していました。
components.js
main.js
csmain.coffee
my_module.coffee
これcomponents.js
は、bower のcomponents
ディレクトリにある次のファイルで構成されます。
- jquery: jquery/jquery
- jqueryui:
- jquery-ui/ui/jquery.ui.core
- jquery-ui/ui/jquery.ui.datepicker
- 増幅:
- 増幅/コア/増幅.コア
- 増幅/リクエスト/増幅.リクエスト
- ブートストラップ:
- ブートストラップ/js/ブートストラップ遷移
- ブートストラップ/js/ブートストラップ-アラート
- ブートストラップ/js/ブートストラップボタン
- ブートストラップ/js/ブートストラップ-カルーセル
- ブートストラップ/js/ブートストラップ-折りたたみ
- ロダッシュ:ロダッシュ/ロダッシュ
実稼働環境では、ブラウザーは 1 つのファイル (たとえばall.js
.
私の質問は次のとおりです。RequireJS を使用すると、ブラウザーmain.js
とビルド スクリプトに入り、部分的および完全に最適化されたビルドを実現できます。私はこの問題に不釣り合いなほど多くの時間を費やしましたが、RequireJS からの不可解で不可解なエラーの数は、悲劇的なほど長くなりました。仕事のツールではないようですが、修正していただければ幸いです。
私が持っている最適化スクリプトは次のようなものです (YAML 表記):
私が解決したい問題はかなり単純なようですが、解決策はすぐには見つかりません。RequireJS は素晴らしいものですが、私が必要としているものよりも劇的に複雑です。Almond.jsはモジュールをロードするための代替手段ですが、問題は代替の適切なオプティマイザがないことにあります。
上記を達成するために使用できるオプションr.js
、または代わりにどのような適切な代替最適化ソリューションが存在するかについての考えに感謝します。
requirejs - require.js を使用して AMD モジュールを作成する
私は次の機能を持っています:
define()
これを AMD (Asynchronous Module Definition) 互換モジュールとして使用require.js
し、ブラウザで使用するにはどうすればよいですか?
jsfiddle
ブラウザで直接動作することを示すために使用する例を特に探しています。
requirejs - RequireJSは、jamファイルパッケージセクションからshim依存関係を指定する方法
私は、RequireJSを使用してモジュールをロードし、JamJSを使用してモジュールを管理するバックボーンボイラープレートを使用したプロジェクトで作業しています。私のrequireconfig.js
ファイルは次のとおりです。
jam/require.config.js
ご覧のとおり、バックボーン、jquery、アンダースコアを指定するJam構成ファイルからRequireJSロード構成を確認できます。次はファイルの一部です:
私が欲しいのは、私config.js
のバックボーンで指定することです。localStorareライブラリは、パッケージセクションで定義されたバックボーンに依存します。また、バックボーンパスを次のように指定すると、バックボーンライブラリが見つかりましたが、アンダースコアがロードされていないというエラーメッセージが見つかりました。
jamjsを使用してbackbone.localStorageライブラリを追加できますが、使用可能なパッケージのバージョンが古いため、最後のパッケージを手動でダウンロードして手動で含めることをお勧めします。
任意のアイデアや助けをいただければ幸いです。
requirejs - AMD をサポートするには、requirejs にすべての JS ファイルが必要です。
私はrequireJSについてほとんど読んでおらず、理解しようとしています。
私が知りたいこと:
- Module-Pattern のような特定の方法またはパターンでファイルを構成する必要がありますか??
- ライブラリを使用する場合、これらのファイルは AMD をサポートする必要がありますか?
助けてくれてありがとう。
ember.js - 残り火-データモデルの問題:奇妙なリクエストURL
https://github.com/fernandogmar/Emberjs-RequireJSに基づいてAMDアプローチ(AMDに関する@tomdaleの見解について知っています)を使用して単純な残り火アプリケーション(filebrowser)を構築しようとしています。このDS.Modelを使用しようとすると、奇妙なリクエストURLが表示されます。
と呼ばれる:
(無関係な質問:get()を使用してルーターまたはコントローラー内からデータストアを取得する方法はありますか?Router.get("DataStore")
未定義を返します。)
標準の変更されていないRESTAdapterを使用します。結果は次のリクエストURLになります。
何が原因なのかわかりません。おそらく、最後の「s」は、モデル名を複数形にしようとしているアダプターです。パレンがどこから来たのかわかりません。
残り火バージョン:v1.0.0-pre.2-123-ga352c48
Ember-データバージョン:昨日https://github.com/emberjs/data/downloadsから最新のダウンロード(バージョン番号がどこにも見つかりません)。
これはAMDのアプローチに関連しているのでしょうか、それとも無関係の問題であるのでしょうか。そして最も重要なのは、どうすれば修正できるのでしょうか。
御時間ありがとうございます。
javascript - System.Web.Optimization を requireJS のような AMD ローダーと一緒に使用できますか?
System.Web.Optimization を requireJS のような AMD ローダーと一緒に使用できますか?
.net 4 の新しい System.Web.Optimization を使用して、多数の小さな JS ファイルを 1 回のダウンロードに結合したいと考えています。
この生成されたダウンロードは、RequireJS や dojo ツールキット ローダーなどの amd ローダーとどのように連携しますか?
誰もこれについて経験がありますか?