問題タブ [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 投票する
1 に答える
954 参照

javascript - Requirejs オプティマイザーと mainConfigFile エラー

webapp に対して r.js を実行しようとしていますが、次のエラーが発生しています。

エラー: エラー: mainConfigFile /home/ubuntu/dev/proj/web/insight/js/main.js の構成は、オプティマイザーでの実行中に正しく評価できないため、使用できません。有効な JSON でもある構成のみを使用するか、mainConfigFile を使用せずに、必要な構成値をビルド ファイルまたはオプティマイザーに指定されたコマンド ライン引数にコピーします。
解析によるソース エラー: /home/ubuntu/dev/proj/web/insight/js/main.js: SyntaxError: Duplicate data property in objectliteral not allowed in strict mode at /home/ubuntu/dev/proj/deploy/r .js:26725:27

私のbuild.jsファイルは次のとおりです。

私のmain.jsは次のとおりです。

私はグーグルを検索するのに疲れました。main.js を mainConfigFile としてプラグインするだけでうまくいくと思っていましたが、他にも問題があるようです。助けてくれてありがとう。

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

javascript - RequireJS: 最適化されたファイルと古いブラウザー

単一の縮小ファイルを作成する最善の方法を決定しようとしていますが、古いブラウザーもある程度サポートしています。IE9 以下で動作しない多数のサードパーティ ライブラリを使用している大規模な Web アプリケーションがあります。理想的には、少なくともこれらのブラウザーを検出し、ユーザーにサブビューを表示してアップグレードを求めるまで、これらのブラウザーをサポートしたいと考えています。私のRequireJSフローは次のとおりです。

HTML には、ロード チェーンの最初のリンク (設定ファイル)、または縮小されたペイロード (実稼働サーバーの場合) のいずれかを出力するバックエンドの条件付きステートメントがあります。

config.r.js次のようになります。

boot.js次のようになります。

最小化されたペイロードは、基本的に と、そのすべてのサードパーティ ライブラリをマージしconfig.r.jsます。縮小されたペイロードがすべてのライブラリを含む本番環境で提供されるときはいつでも、それらが存在するだけで IE9 以下の insta-error になる insta-parse されます。boot.jsapp.js

縮小されたファイルまたは緩い個々のファイルのいずれかをロードしながら、このbootシーケンスがシーケンスから分離されるように、これを分割するにはどうすればよいですか? app私がハングアップしている部分は、これを行う方法ですが、config.r.js、または環境に応じて縮小されたスクリプト ファイルのいずれかを要求するように依頼することです。

任意のガイダンスをいただければ幸いです。エラーを取り除き、アップグレード ビューを表示するためだけに、ライブラリをダウングレードしたり、ポリフィルを追加したりする必要はありません。

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

javascript - RequireJS オプティマイザー - 実際に何をするのですか?

RequireJS オプティマイザーは、定義された依存関係を調べて、アプリケーション内の参照されているすべての js ファイルを収集し、それらを 1 つの大きな js ファイルにバンドルするという印象を受けました。

その後、html スクリプト インクルードでその単一のファイルを参照できます。

しかし、そうではないようです。これを実行すると、大きなファイルが得られますが、ディレクトリ構造内のファイルへのパスを含む元の main.js ファイルが含まれています。

そのポイントは何ですか?必要なものがすべて内部に含まれているのに、新しい大きなファイルに外部のパスが含まれているのはなぜですか? オプティマイザーが「./」などを指すようにパスを書き換えるようです。

アプリ全体をまとめてページで参照すると、大きな js ファイルに含まれているファイルが見つからないというエラーが表示されます。

build.js:

main.js

サンプル モジュールは次のように始まります。

次に実行します:

私は何が欠けていますか?その大きな js ファイルに含まれるファイルを取得しようとするのはなぜですか?

ありがとう、スコット

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

gruntjs - grunt を使用した Requirejs の最適化

うなり声とアーモンドを使用してrequirejs最適化構成を作成しようとしています。構成は次のとおりです。

フォルダ構造:

ここに画像の説明を入力

エラー:

Main.js コード (coffeescript で記述)

複数の js ファイルにまたがるプロジェクト全体を 1 つのファイルにコンパイルして、requirejs が不要になるようにしたいと考えています。アーモンド js を使用してこれを実行しようとしていますが、ビルド タスクは参照ファイルのパスに関連する参照ファイルを探しません。正しい構成を教えてください。

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

playframework-2.3 - Play 2.3 の requireJs の最適化と複数のモジュールのシム

これは Play 2.2.x requireJS の現在の設定です。2.3以降も引き続き動作しますか?2.3 ドキュメントのどこにも requireJs または requireJsShim が見つかりません。

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

gruntjs - requirejs オプティマイザーでコンパイルする

requirejs オプティマイザーと grunt ( https://www.npmjs.org/package/grunt-contrib-requirejs ) を使用してプロジェクトをコンパイルしようとしています。コンパイルの出力ファイルは単一の js ファイルですが、requirejs から次のように呼び出す必要があります。

ファイルを実行するためにスクリプトに requirejs を含める必要がないように、grunt を使用してプロジェクトをコンパイルする必要があります。そのようです:

以下は、requirejs grunt コンパイラの構成です。

また、このコンパイル中に require および define 呼び出しを取り除くことができると期待しています。

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

requirejs - 最適化後に requireJS module.config() が見つからない

RequireJS オプティマイザーを実行すると問題が発生します...メインの構成ファイルで次のように定義しています。

次に、私のbootstrap.jsファイルで次のことを行います。

しかし:(ただし、変数autoloadは最適化されていないバージョンで使用できますundefined

私はこれを他のモジュールと他の変数で試しましたが、基本的にモジュール構成は Require のオプティマイザーから出力ファイルにプッシュされていません。

これは予想される動作ですか?

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

requirejs - Require.js オプティマイザーが shim 依存関係を正しく順序付けしない

依存関係を読み込むために Require を使用する Web アプリケーションがあります。config.shimRequireオブジェクトを使用して含まれる一連の JS ライブラリがあります。

そのような 2 つのサンプル ライブラリは次のとおりです。

2 番目のライブラリにleaflet-dvfは、最初のleaflet. L2 番目は、最初のライブラリが定義するグローバル スコープ変数に依存する最初のプラグインです。

通常、Require を使用してアプリケーションを実行すると、すべて正常に動作します。シムからいずれかのライブラリを含めることができ、すべてがうまく機能します。問題はありません。

このコードを Require r.js Optimizer で実行すると問題が発生します。Optimizer は、単一の最適化された JS ファイルをビルドするときに、依存関係を誤って順序付けます。ビルドされたファイルでは、leaflet-dvfコードはコードの前に来leafletます。これにより、依存プラグインLが必要なグローバル スコープ変数を見つけることができないため、JS ランタイム エラーが発生します。

私のビルド構成は次のようになります。

Rhino を使用して Optimizer を実行すると、出力ファイルが作成されます。Main-built.jsファイルでは、プラグインのコードが必要なライブラリの前に来ます。これにより、L undefined error.

最適化された JS ファイル内のライブラリ ファイルを適切に並べ替えるために、オプティマイザーが Shim の依存関係の順序を尊重するようにするにはどうすればよいですか?