我正在将 requirejs 用于多页应用程序。我对主文件的执行顺序有一个奇怪的问题。这是我的设置。
在我所有的 html 页面中(这个 main 包含我所有页面所需的所有常见 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() {
}
);
我的期望:在“main”之前,“main-library”不会开始加载,并且在 main 中指定的所有依赖项都没有加载。我希望这是因为我在每个页面上的嵌套要求调用中都需要“主库”。看上面。
问题:当我的 page1.html 加载时,看起来 main-library.js 甚至在 main.js 完成加载之前就开始加载,并且 main-library 无法获取 require.config,因此依赖项的路径不是被它看到。
我究竟做错了什么 ?