マルチページアプリケーションにrequirejsを使用しています。メインファイルの実行順序に奇妙な問題があります。これが私のセットアップです。
すべての html ページ (このメインには、すべてのページで必要なすべての一般的な js ファイルがあります)
次に、各ページ (page1.html など) で:
<script data-main="main" src="require.js" />
<script>
require(['require','main'],function(require) {
require(['main-library']);
});
</script>
私のmain.jsは次のようになります:
require.config({
paths:{
'lib':'../lib',
'jquery': '../lib/jquery/jquery-1.7.1.min',
'jquery.iframe-transport' : '../lib/jquery.iframe-transport.min.js'
},
deps:['jquery','jquery-ui'],
shim: {
<other shim files>
},
});
require([<list of all other dependencies>], function() {
});
main-library.js は次のようになります。
define('main-library',
['main',
'jquery.iframe-transport',
<other dependencies>
],
function() {
}
);
私の期待:「メイン」とメインで指定されたすべての依存関係がロードされるまで、「メインライブラリ」はロードを開始しないということでした。各ページのネストされたrequire呼び出しで「main-library」が必要なので、これを期待しています。上記を参照。
問題: page1.html が読み込まれると、main.js の読み込みが完了する前に main-library.js の読み込みが開始され、main-library が require.config の取得に失敗するため、依存関係のパスが読み込まれないように見えます。それによって見られます。
私は何を間違っていますか?