次のようなrequire.jsベースのプロジェクトのファイル配置があります。
- lib フォルダー: いくつかのライブラリー
- app.js : これは、html の data-main として追加されます
- main.js : これはメインのアプリケーション ファイルです
app.js には、requirejs.config と、すべてのライブラリをロードするための require 呼び出しと、main.js (独自のスクリプトである他のモジュールが必要になります) があります。これは次のようになります。
require(['lib/jquery/jquery-1.8.2.min'],
function() {
require(['main']);
}
);
そのため、AMD と互換性のないライブラリ (ここでは jquery のみ) がいくつかあります。これらは最初にグローバル空間にロードされ、次に main.js が呼び出されます (すべての依存関係と共に)。これは正常に動作しますが、require.js のオプティマイザーを使用してビルドを作成しようとすると、次の問題が発生します。入力として) main.js とそのすべての依存関係は醜くされず、この結果ファイルに組み込まれますが、それらは同じままです。
ここで、ライブラリのリストの最後に「main」を追加すると、出力ファイルに含まれるすべての依存関係がうまく醜くなります。main.js が最後の場所にあるため、依存関係は満たされていると思いますが、問題は、ライブラリを同時にロードするため、(私が書いた) 通常の、醜くされておらず、最適化されていないバージョンのコードを実行すると、 main が最初にロードされるため、依存関係は満たされていません。
開発用とビルド用のアプリのバージョンが必要になるようですか? しかし、もっと良い方法があると確信しています。もっと理にかなっていれば、ファイルを他の構造に再配置することは自由ですが、これはrequire jsの公式サンプルコードでも見た方法でした..