問題タブ [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.
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 としてプラグインするだけでうまくいくと思っていましたが、他にも問題があるようです。助けてくれてありがとう。
javascript - RequireJS: 最適化されたファイルと古いブラウザー
単一の縮小ファイルを作成する最善の方法を決定しようとしていますが、古いブラウザーもある程度サポートしています。IE9 以下で動作しない多数のサードパーティ ライブラリを使用している大規模な Web アプリケーションがあります。理想的には、少なくともこれらのブラウザーを検出し、ユーザーにサブビューを表示してアップグレードを求めるまで、これらのブラウザーをサポートしたいと考えています。私のRequireJSフローは次のとおりです。
HTML には、ロード チェーンの最初のリンク (設定ファイル)、または縮小されたペイロード (実稼働サーバーの場合) のいずれかを出力するバックエンドの条件付きステートメントがあります。
config.r.js
次のようになります。
boot.js
次のようになります。
最小化されたペイロードは、基本的に と、そのすべてのサードパーティ ライブラリをマージしconfig.r.js
ます。縮小されたペイロードがすべてのライブラリを含む本番環境で提供されるときはいつでも、それらが存在するだけで IE9 以下の insta-error になる insta-parse されます。boot.js
app.js
縮小されたファイルまたは緩い個々のファイルのいずれかをロードしながら、このboot
シーケンスがシーケンスから分離されるように、これを分割するにはどうすればよいですか? app
私がハングアップしている部分は、これを行う方法ですが、config.r.js、または環境に応じて縮小されたスクリプト ファイルのいずれかを要求するように依頼することです。
任意のガイダンスをいただければ幸いです。エラーを取り除き、アップグレード ビューを表示するためだけに、ライブラリをダウングレードしたり、ポリフィルを追加したりする必要はありません。
javascript - RequireJS オプティマイザー - 実際に何をするのですか?
RequireJS オプティマイザーは、定義された依存関係を調べて、アプリケーション内の参照されているすべての js ファイルを収集し、それらを 1 つの大きな js ファイルにバンドルするという印象を受けました。
その後、html スクリプト インクルードでその単一のファイルを参照できます。
しかし、そうではないようです。これを実行すると、大きなファイルが得られますが、ディレクトリ構造内のファイルへのパスを含む元の main.js ファイルが含まれています。
そのポイントは何ですか?必要なものがすべて内部に含まれているのに、新しい大きなファイルに外部のパスが含まれているのはなぜですか? オプティマイザーが「./」などを指すようにパスを書き換えるようです。
アプリ全体をまとめてページで参照すると、大きな js ファイルに含まれているファイルが見つからないというエラーが表示されます。
build.js:
main.js
サンプル モジュールは次のように始まります。
次に実行します:
私は何が欠けていますか?その大きな js ファイルに含まれるファイルを取得しようとするのはなぜですか?
ありがとう、スコット
gruntjs - grunt を使用した Requirejs の最適化
うなり声とアーモンドを使用してrequirejs最適化構成を作成しようとしています。構成は次のとおりです。
フォルダ構造:
エラー:
Main.js コード (coffeescript で記述)
複数の js ファイルにまたがるプロジェクト全体を 1 つのファイルにコンパイルして、requirejs が不要になるようにしたいと考えています。アーモンド js を使用してこれを実行しようとしていますが、ビルド タスクは参照ファイルのパスに関連する参照ファイルを探しません。正しい構成を教えてください。
playframework-2.3 - Play 2.3 の requireJs の最適化と複数のモジュールのシム
これは Play 2.2.x requireJS の現在の設定です。2.3以降も引き続き動作しますか?2.3 ドキュメントのどこにも requireJs または requireJsShim が見つかりません。
gruntjs - requirejs オプティマイザーでコンパイルする
requirejs オプティマイザーと grunt ( https://www.npmjs.org/package/grunt-contrib-requirejs ) を使用してプロジェクトをコンパイルしようとしています。コンパイルの出力ファイルは単一の js ファイルですが、requirejs から次のように呼び出す必要があります。
ファイルを実行するためにスクリプトに requirejs を含める必要がないように、grunt を使用してプロジェクトをコンパイルする必要があります。そのようです:
以下は、requirejs grunt コンパイラの構成です。
また、このコンパイル中に require および define 呼び出しを取り除くことができると期待しています。
requirejs - 最適化後に requireJS module.config() が見つからない
RequireJS オプティマイザーを実行すると問題が発生します...メインの構成ファイルで次のように定義しています。
次に、私のbootstrap.js
ファイルで次のことを行います。
しかし:(ただし、変数autoload
は最適化されていないバージョンで使用できます。undefined
私はこれを他のモジュールと他の変数で試しましたが、基本的にモジュール構成は Require のオプティマイザーから出力ファイルにプッシュされていません。
これは予想される動作ですか?
requirejs - Require.js オプティマイザーが shim 依存関係を正しく順序付けしない
依存関係を読み込むために Require を使用する Web アプリケーションがあります。config.shim
Requireオブジェクトを使用して含まれる一連の JS ライブラリがあります。
そのような 2 つのサンプル ライブラリは次のとおりです。
2 番目のライブラリにleaflet-dvf
は、最初のleaflet
. L
2 番目は、最初のライブラリが定義するグローバル スコープ変数に依存する最初のプラグインです。
通常、Require を使用してアプリケーションを実行すると、すべて正常に動作します。シムからいずれかのライブラリを含めることができ、すべてがうまく機能します。問題はありません。
このコードを Require r.js Optimizer で実行すると問題が発生します。Optimizer は、単一の最適化された JS ファイルをビルドするときに、依存関係を誤って順序付けます。ビルドされたファイルでは、leaflet-dvf
コードはコードの前に来leaflet
ます。これにより、依存プラグインL
が必要なグローバル スコープ変数を見つけることができないため、JS ランタイム エラーが発生します。
私のビルド構成は次のようになります。
Rhino を使用して Optimizer を実行すると、出力ファイルが作成されます。Main-built.js
ファイルでは、プラグインのコードが必要なライブラリの前に来ます。これにより、L undefined error
.
最適化された JS ファイル内のライブラリ ファイルを適切に並べ替えるために、オプティマイザーが Shim の依存関係の順序を尊重するようにするにはどうすればよいですか?