問題タブ [requirejs]
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 - メモリを節約するためにモジュールを削除する必要がある場合にrequirejsを使用することは可能ですか?
組み込み環境でアプリケーションを開発します。これは、busybox Linux システム上に完全な Web ブラウザーを備えた高レベルのコンピューティング環境です。唯一の例外は、システムのシステム メモリの量が限られていることです。
私たちのアプリケーションは JavaScript で構築され、Webkit ベースの Web ブラウザ内で実行され、順番にロードされる多数の JavaScript モジュールで構成されています (これはあまり効率的ではありません)。
一部のモジュールは、複数のモジュールで使用される共通の機能を提供します。現在、requirejs を使用して現在の JavaScript ローダーを変換中ですが、最初に対処しなければならない特定のニーズが 1 つあります。
モジュールがrequirejsを使用してロードされている場合、モジュールをアンロードすることは可能ですか? 以下を使用してモジュールを動的にロードするとします。
これは、「somemodule」のロードと実行、および「somemodule」のすべての依存関係の解決にもうまく機能し、requirejs フレームワークは将来のリクエストのために「somemodule」への参照を保存します。
ある時点でメモリを再利用する必要がある場合、たとえば無限の数のモジュールをロードして実行できるようにするために、しばらくしてからそれらのいくつかを削除し始める必要があります。内部実装を変更せずにrequirejsでそれは可能ですか?
誰もこの種の問題を以前に扱ったことがありますか? ほとんどの単一ページ JS アプリは、デスクトップ PC の Web ブラウザーで実行され、通常はメモリ使用量が大きな問題になることはありません。
google-chrome - RequireJSの「従来の」スクリプトの読み込み(別名Orderプラグイン)
私はかなり長い間これに対して頭を打っています。特定の依存関係構造を尊重する必要がある約60個のスクリプトファイルをロードしています。これらをrequirejsに正常にロードしても機能しないため、orderプラグインを使い始めました。
注文プラグインはFirefox3.6.12、IE7、IE8でうまく機能しますが、私のアプリケーションはChrome8で爆発します。Chromeは好きな順序で実行されるようです。これは既知の問題ですか、それともいくつかの回避策がありますか?
jquery - requireJS と jQuery を一緒に使用するにはどうすればよいですか?
requireJS を使用したいのですが、jQuery を使用しています。最新の jQuery バージョンを使用していないため、requireJS と jQuery を組み合わせたバージョンは使用したくありません。requireJS を使用する最善の方法は何ですか?
dependencies - 外部 JS 依存関係を持つ Maven プロジェクトでの RequireJS コンパイル
Maven でビルドされた Web プロジェクトがあり、RequireJS コンパイラで JavaScript ファイルをコンパイルする最良の方法を見つけようとしています (この質問は、任意のコンパイラ/ミニファイアにも適用される可能性があります)。
動作するセットアップがありますが、改善が必要です:
サードパーティの JavaScript ライブラリをパッケージ化しました。それらは依存関係としてダウンロードされ、WAR Overlay プラグインに追加されています。
ターゲットディレクトリ内で RequireJS コンパイラを実行する Exec プラグイン タスクがあります。現在、パッケージ ターゲットの実行後に手動で実行exec:exec
しています (したがって、WAR の内容はターゲット ディレクトリに配置されます)。
私が代わりに望むのは、JS コンパイルをメイン (Java) コンパイルの一部にすることです。JS コンパイラ自体 (Require JS) は、コンパイル後に発生する WAR オーバーレイ フェーズ中に依存関係としてダウンロードされます。したがって、Require JS ファイルをダウンロードして解凍する必要があり、Java コンパイルの前/最中/後に、これらのファイルを使用して JS コンパイルを実行する必要があります。
これを達成するにはいくつかの方法があると確信しています。最もエレガントなソリューションを探しています。
更新: 既存の POM スニペット
zip してリポジトリ マネージャーに追加した JavaScript の依存関係があります。
RequireJS 自体 (残りのライブラリのコンパイルに必要) も外部依存関係として読み込まれることに注意してください。まず、RequireJS のコンパイルを開始する前に、この依存関係をダウンロードして解凍する必要があります。
これらの依存関係は、WAR オーバーレイ プラグインを使用して WAR に追加されています。
WAR に参加する必要はありませんがrequirejs/build/**
、これをオーバーレイの一部として含めて、解凍された RequireJS ビルド スクリプトを取得します。
次に、コンパイルを実行する Exec プラグイン タスクがあります。ただし、このタスクは通常のコンパイル ワークフローに追加されていないことに注意してください。WAR のパッケージ化が完了しmvn exec:exec
た後、手動で呼び出す必要があります。
したがって、いくつかの質問は次のとおりです。
- コンパイルと WAR パッケージのステップで、単一の圧縮された依存関係のさまざまな部分を抽出するにはどうすればよいですか? それとも、2 つの zip ファイルを作成する必要がありますか?
- 理想的には、コンパイル中にトリガーする
exec:exec
か、そうでない場合は、WAR パッケージの直前にトリガーしたいと考えています。それ、どうやったら出来るの?
私は実際に成功せずにたくさんのものを試してみました.などはまだ動作します。
javascript - Require.JSをいつどのように使用するかを理解する
私はRequire.JSを使い始めたばかりですが、それを使用する適切なケースと、そのような場合の正しい使用方法については少しわかりません。
これが私が現在Require.JSで設定している方法です。私には2つの関数がfunctionA()
ありfunctionB()
ます。これらの機能は両方とも、functionC()
正しく機能するために追加の機能を必要とします。
必要な場合、つまりfunctionA()またはfunctionB()が呼び出される場合にのみ、functionC()をロードしたいと思います。だから私は次のファイルを持っています:
functionC.js
functionA.js
functionB.js
それで、これは正しく設定されていますか?また、同じページでfunctionA()とfunctionB()の両方を呼び出すことになった場合、両方ともfunctionC.jsファイルをロードするため、余分な作業が行われていますか?もしそうなら、それは問題ですか?もしそうなら、最初にfunctionC.jsがまだロードされているかどうかを確認し、ロードされていない場合にのみロードするように設定する方法はありますか?最後に、これはRequire.JSの適切な使用法ですか?
javascript - RequireJS-すでにロードされているモジュールをロードする
RequireJSを使用してブラウザモジュールをロードしようとしていますが、興味深い問題が発生しました。
a
私はという名前の3つのモジュールを持ってb
おりc
、これらの単純なソースコードを持っています:
a.js
b.js
c.js
モジュールa
を単独でロードすると、すべてが正常に機能し、次のコードが実行されて「A」が返されます。
しかし、2つの異なるモジュールが必要な場合、そのうちの1つはすでにロードされています。
RequireJSはエラーになります:
明らかにすでにロードされている場合。
誰かが以前にこの問題に遭遇したことがありますか?どうすれば解決できますか?
javascript - 優先度を使用しているときにRequireJSが機能しないのはなぜですか?
「優先度」なしでRequireJSを使用すると、次のように機能します。
しかし、「優先度」を追加すると、機能しなくなります。
私は何が間違っているのですか?
psそして、なぜ私がRequireJS-jQueryを使用しないのか疑問に思っている人にとっては、好みです=]
jquery - グローバルjqueryを破壊せずにrequirejsとjqueryを使用しますか?
プロジェクトで初めてrequirejsを使用しています。私はすでに多くの Javascript が配置されている環境で作業しており、独自のコードを導入するためのクリーンな方法を探しています。
私が抱えている問題は、既存のjQueryを破壊しない、ロードできるjQueryのモジュールが見つからないように見えることです。
require-jquery.js でさえ jQuery のグローバル バージョンを導入していることに驚きました。グローバルを導入せずにjQueryをモジュールとしてロードする方法はありますか?
javascript - RequireJS:単一の「クラス」を含むモジュールを定義する方法は?
それぞれが独自のJavaScriptファイルに実装されているJavaScript「クラス」がいくつかあります。開発の場合、これらのファイルは個別にロードされ、本番の場合、それらは連結されますが、どちらの場合も、ロード順序を手動で定義する必要があります。BがAを使用する場合は、BがAの後に来るようにします。CommonJS Modules / AsynchronousDefinitionを使用して、この問題を自動的に解決します。
それぞれが1つのクラスをエクスポートするモジュールを定義するよりも、これを行うためのより良い方法はありますか?そうでない場合、モジュールがエクスポートするものにどのように名前を付けますか?以下の例のように、クラス「Employee」をエクスポートするモジュール「employee」は、私には十分に乾燥しているとは感じません。
javascript - RequireJS / AMDで循環依存を処理する方法は?
私のシステムでは、開発中にブラウザにそれぞれ個別のファイルがロードされ、本番用に連結された多数の「クラス」があります。G
ロードされると、次の例のように、グローバルオブジェクトのプロパティを初期化します。
私自身のグローバルオブジェクトを使用する代わりに、James Burkeの提案に基づいて、各クラスを独自のAMDモジュールにすることを検討しています。
問題は、以前は従業員と会社の間に宣言時の依存関係がなかったことです。宣言は任意の順序で配置できましたが、今ではRequireJSを使用すると、依存関係が導入されます。これは(意図的に)循環しているため、上記のコードは失敗します。もちろん、では、最初の行をaddEmployee()
追加すると機能しますが、このソリューションは、開発者である私がこの新しく作成された循環依存関係を認識して何かを行う必要があるため、RequireJS/AMDを使用しない場合よりも劣ると思います。var Employee = require("Employee");
RequireJS / AMDでこの問題を解決するためのより良い方法はありますか、それとも私はRequireJS / AMDを設計されていないものに使用していますか?