問題タブ [requirejs-optimizer]

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.

0 投票する
2 に答える
464 参照

javascript - 埋め込まれた ember-cli プロジェクトが RequireJS と競合する

RequireJS ライブラリを広く使用する大規模なポータル アプリケーションに EmberJS アプリケーションを埋め込もうとしています。プロジェクトのビルドには ember-cli を使用しています。ビルドされたアプリケーションは、2 つのファイルdist/assets/vendor.jsdist/assets/myapp.js. EmberJS アプリケーションは埋め込み後に機能しますが、ポータル アプリの JavaScript が壊れます。

いくつかの調査の結果、問題は、グローバル名前空間の Web サイトの変数と競合するvendor.js独自の変数requirerequirejsrequireModuleおよびを定義することであることがわかりました。defineこのmyapp.jsファイルにはdefine、アプリのモジュールをロードするステートメントが含まれています。

これらの名前を変更したり、別の名前空間に配置したりする方法はありますか?

私が思いついた唯一の解決策は、2 つの.jsファイル内の変数の名前を手動で変更することでした。これは機能しているように見えますが、かなり面倒なので、自動化できればいいと思います。RequireJS オプティマイザーの使用についても知りましたが、vendor.jsファイルで動作させることができません。

手伝って頂けますか?ありがとう!

0 投票する
1 に答える
49 参照

requirejs - 依存関係のリストを含む変数を define() に渡すと、最適化が失敗する

スクリプトを縮小せずにデバッグ モードでサイトを実行している場合、次のように動作します。

しかし、コードが縮小されるとすぐに動作しなくなります。なぜなのかご存知ですか?

これが機能することに注意してください:

配列を使用する理由は、配列をループして「template」を「template.1010101010」に置き換えたいからです。ここで、10101010101 はファイルの作成に基づくタイムスタンプです。このようにファイルを維持することで、自動的にファイルの更新時にキャッシュをバイパスします。

ループするファイルが他にもあることに注意してください。

0 投票する
0 に答える
72 参照

playframework - Play Framework - RequireJS オプティマイザーの問題

PlayFramework 2.3 プロジェクトがあり、クライアント側で require.js を使用しています

私が実行すると、activator runすべてが正常に動作します(したがって、require の依存関係は問題ないと確信しています)。しかし、 を実行activator startすると、依存関係の一部が失われます。

プレイのドキュメント ( here ) では、次のように述べています。

RequireJS オプティマイザは、一般に、デプロイメントを実行する時まで、つまり start、stage、または dist タスクを実行するまで起動しないでください。

したがって、オプティマイザは実行中に実行され、実行中には実行さstartれません。これが、実行run中にすべてが正常に機能する理由を説明していactivator runます。

それで、オプティマイザーを構成したり、実行時に無効にしたりする方法はありますactivator startか?

0 投票する
1 に答える
710 参照

gruntjs - requirejs の実行時に gruntfile.js に複数の出力ファイルを含める方法

grunt-contrib-requirejs の Gruntfile.js では、1 つのタスクしか登録できず、1 つの出力ファイル、つまり home_scripts.pack.js しか持つことができません。ただし、さまざまな「インクルード」基準に基づいて、必要な数の出力ファイルが必要です。たとえば、home_scripts.pack.js、checkout_scripts.pack.js、product_scripts.pack.js などです。このようにして、各ページは以下を使用する JS のみをロードします。

これは無効ですが、似たようなことをしたいです:

上記のアスタリスクが付いたコードは、ページごとに異なる出力ファイルを生成したいコードです。ただし、grunt を使用して requireJS オプティマイザーを介して多数の JS プラグイン ファイルとモジュールを生成およびロードするより効率的な方法がある場合は、提案をお待ちしています。

ありがとう、

0 投票する
1 に答える
341 参照

javascript - RequireJS Optimizer で Javascript ファイル以外をすべて除外する

gulp レシピで RequireJS オプティマイザーを使用してモジュールをコンパイルおよび連結していますが、bower.json や *.nuspec ファイルなどの冗長なサードパーティ ライブラリ ファイルが出力ディレクトリにコピーされています。

次の式を使用して、requirejs.optimize オプション オブジェクトで fileExclusionRegExp を使用して、完全なディレクトリを除外することに成功しました。

/^\.|^styles$|^templates$|^tests$|^webdriver$/

.jsただし、ファイル拡張子以外をすべて除外する方法がわかりません。以下を使用できます。

/^\.|.json$|.nuspec$|^styles$|^templates$|^tests$|^webdriver$/

特定の拡張機能を除外するためですが、新しいタイプが後で表示された場合は、正規表現に気付き、変更する必要があります。また、正規表現はおそらく手に負えなくなり、維持するのが難しくなります。私は次の表現を使用しようとしました:

/^\.|!js$|^styles$|^templates$|^tests$|^webdriver$/

/^\.|!.js$|^styles$|^templates$|^tests$|^webdriver$/

/^\.|^.js$|^styles$|^templates$|^tests$|^webdriver$/

/^\.|[^.js$]|^styles$|^templates$|^tests$|^webdriver$/

/^\.|[^.js]$|^styles$|^templates$|^tests$|^webdriver$/

結果は、何もしないこと (最初の 3 つ、ビルドを壊すこと、最後の 2 つ) から、だれかが提供できる助けがあれば幸いです。

ありがとう

0 投票する
0 に答える
120 参照

requirejs - r.js オプティマイザと Underscore _.template() 関数に関する問題

_.template()最適化されたビルドを作成した後、アンダースコア (古いバージョン [1.3.3] を使用しており、このプロジェクトには他のバージョンを使用できません) 機能に問題があります。

最適化した後、すべての初期モジュールを含むファイルができました。アンダースコア (jQuery など) も shim を介してそこに配置されます。テンプレート ファイルは関数によって除外さonBuildWrite()れ、動的に読み込まれます。

しかし、大きな問題があります。最適化後_.template()は正しく機能しません。複数行を評価することはできません (ただし、単一行のコードは場合によっては正常に評価されます [すべてを確認することはできません]) テンプレート ファイル内の JS。したがって、たとえば、このテンプレート ファイルを解析できません。

「Uncaught ReferenceError: subsIconsNames が定義されていません」

しかし、最適化をしなくても問題なく動作します。

ご清聴ありがとうございました。

0 投票する
1 に答える
579 参照

requirejs - RequireJS baseUrl と複数の最適化ファイル

アプリ コードからサード パーティのライブラリを分離し、requirejs がプルできるようにそれらをすべて 1 つのファイルvendor.jsbuild.jsグループ化しました。ファイルをmodules最適化しvendor.jsます。私が抱えている唯一の問題は、コンパイルされたmainモジュールが要求するときです。構成ファイルからvendor取得しているbaseUrlため、最適化されたファイルをロードしませんvendor.js。私のbuild.jsファイルは次のようになります。

そして、私のmain.jsファイルは次のようになります。

すべての開発はjsフォルダー内で行われ、私のbuild.jsファイルはそのフォルダーの外にあります。最適化されたファイルはbuild、 の兄弟である になりjsますが、メイン ファイルを次のように含めると、次のようになります。

js/vendor.jsそのdefine()呼び出しの読み込みが終了します。ここで何が欠けていますか?main代わりに最適化されたファイルをロードするように指示し、最適化されbuild/vendor.jsていないバージョンを引き続きロードできるようにするにはどうすればよいjs/vendor.jsですか?