問題タブ [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.
requirejs - 出力をマングルするためにオプティマイザが必要です
Require Optimizer を使用して、すべてのソース ファイルを 1 つのファイルに結合しています。それはうまく機能しますが、設定しようとしたり、出力が壊れoptimize: 'uglify'
たりoptimze: 'uglify2'
しないと、すべてが単一ファイルの単一行に結合されますが、その行は元の変数名で埋められます。
次のようなさまざまなuglifyerオプションを設定しようとしました:
また:
しかし、それらは機能しません。オプティマイザに出力を壊させる方法を誰か説明できますか?
編集
これが私のbuild.js
ファイルです:
requirejs - Require.js (almond.js) のタイミング オフ
Almond.js と Require.js オプティマイザーを使用して、Require.js なしで使用できるスタンドアロン ファイルを作成しようとしています。ファイルを正常にコンパイルでき、すべてのコードが実行されましたが、コードが間違った順序で実行されるという問題が 1 つあります。
私のメインファイル(include=
オプティマイザに渡されたオプションにあるファイル)に次のものがあるとしましょう:
そして、私が持っているHTMLに出ます:
私は almond.js とコンパイルされたファイルを使用しているため (したがって、ファイルの読み込みは行われていません)、出力が得られると予想されます。
ただし、実際に見ているのは次のとおりであるため、まだ非同期性が発生していることがわかりました。
window.foo
HTMLからチェックしようとすると、そこにはありません。
script
それで、私の質問は、次のブロックに物事を渡す前にすべてのコードを最初に実行する、通常の/同期JSファイルのようにコードを取得するにはどうすればよいですか? ユーザーに「すべてのコードをwindow.setTimeoutにラップする」と正確に伝えることはできません。
d3.js - NVD3 + D3 + Optimizer が必要: クリーンなソリューションはありますか?
私は2つのライブラリを使用しようとしています:
- D3 (Javascript グラフィック ライブラリ)
- NVD3 (グラフ固有の D3 拡張機能)
また、Require Optimizer を使用しようとしていますが、ここで問題が発生します。D3 は AMD に準拠しているため、Require を使用していることを検出すると、モジュールを定義し、グローバルd3
変数をエクスポートしません。NVD3 は AMD をサポートしていませんが、Require にはその場合の「シム」があります。
ただし、NVD3 を "shim" し、その shim に D3 の依存関係を与えると、動作しません。NVD3 はd3
、D3 が Require 環境で作成しないグローバル変数があることを期待しているためです。したがって、この問題を回避するために、単に D3 を必要とする新しいモジュール (d3Shim) を作成し、それをグローバル変数として登録します。
NVD3 を d3Shim に依存させたところ、通常の Require-land ですべてが機能しました。d3
require-optimizer を使用してすべてを 1 つのファイルにマージしようとしたところ、変数がないために NVD3 が再び壊れ始めたことがわかりました。
オプティマイザーがシムに対してこれを行うことがわかりました。
したがって、どのような依存関係があるかは関係ありません。NVD3 コードは、d3shim モジュールがその魔法を実行する前に実行されます。
私の質問は、どちらのファイルも変更せずに、Require Optimizer でこれら 2 つのライブラリを使用できる方法はありますか? 必要に応じて、いつでも NVD3 のコードを編集して AMD モジュールにすることができますが、明らかな理由から、サードパーティのライブラリを編集するのは悪い習慣であるため、編集しないソリューションをお勧めします。
requirejs - 空のディレクトリを削除しないrequirejsオプティマイザの設定オプションはありますか?
空のディレクトリを持つプロジェクト構造があります (おそらく自動生成されますが、必須です)。この構造で requirejs オプティマイザーを実行しても、(この空のディレクトリ) は出力ビルド ディレクトリにコピーされません。出力の生成中にこのディレクトリを保持するようにオプティマイザに指示するにはどうすればよいですか?
プロジェクトの構造:
ビルド構成
requirejs - RequireJS の最適化は、同じサーバーに存在するスクリプトにのみ適用できますか?
私が使用するスクリプトの約半分は CDN にあり、残りの半分はアプリと同じサーバーにあります。この場合、何を最適化すればよいかわかりません。誰かが提案できますか?
node.js - npm + モカ + RequireJS
Mocha と RequireJS を使用して node/npm をセットアップするのにかなりの時間を費やしています。これが私がやったことです。
次の構造の testing/ ディレクトリを作成しました。
関連する各ファイルの内容は次のとおりです。
パッケージ.json:
テスト/mocha.opts:
テスト/ウィジェット/mywidget/test.js
「require の前」と「done」のコンソール行を出力しますが、requirejs(['mywidget... 行が含まれている限り、require の後にヒットしません。requirejs 行 (および対応する閉じ括弧/括弧行)、代わりに直接の「var myObj =" 行を使用すると、「モジュールが見つかりません」というメッセージが表示され、2 番目の「var myObj」行を使用すると、「参照エラー: 定義が定義されていません」というメッセージが表示されます。 "。
他の開発者の利便性のために、これをすべて npm でパッケージ化し、最上位の「testing/」ディレクトリ内から「npm test」コマンドを実行しようとしています。
私は答えを探し求めて多くのことを試してきましたが、RequireJS を使用してファイルを要求し、「define()」を定義しているようには見えません。テストを実行できますが、それは問題ではありません...問題が発生し始めたときのミックスにRequireJSを挿入しようとしているだけです。
どんな助けでも途方もないでしょう!
ありがとうございました!
dojo - プラグイン (xstyle/css) を参照すると、RequireJS の最適化が失敗する
http://requirejs.org/docs/optimization.htmlで説明されているサンプル ファイル構造に従い、動作するビルドを取得しました。次に、two.js を次のように変更しました。
そして xstyle/css を build.js に追加しました:
追加でビルドを再度実行しました。
r.js.cmd -o build.js 最適化=なし
そして今、私はこのエラーを見ています:
この同じエラーへの参照は多数ありますが、この特定の問題を解決するものはありません (例):
Requirejs が Dojo 依存モジュールをコンパイルできない
https://github.com/odoe/AGSModularDemo
requirejs を使用して道場アプリケーションを最適化することは可能ですか?