有没有可能在一个地方配置requirejs并在模块中重用它?
比如
main.js:
requirejs.config({
baseUrl: "static/js",
paths: {
"jquery": "http://code.jquery.com/jquery-1.9.1.js",
"jquery-ui": "http://code.jquery.com/ui/1.10.2/jquery-ui.js"
},
shim: {
"jquery-ui": {
deps: ["jquery"]
}
}
}); 和
public.js:
define(["main", "jquery", function(main, $) {
// do some public stuff
});client.js:
define(["main", "jquery", function(main, $) {
// do some client stuff
});在我的网站的公共部分
<script type="..." src="js/require.js" data-main="js/public.js"></script>在web的客户端
<script type="..." src="js/require.js" data-main="js/client.js"></script>我也想有一个模块的每一页。例如,在public上有一个索引模块
<script ...>
require('public/index');
</script>和
public/index.js:
define(["jquery", "slideshow"], function($, s) {
$( function() { s.init() } );
});使用RequireJS可以做到这一点吗?
谢谢你的回答。
发布于 2013-04-18 02:17:52
当你让问题更清晰时,我会编辑我的答案。
在任何包含require.js的页面中,都应该包含main.js来定义RequireJS配置。
你不能像这样做
define(["main", "jquery", function(main, $) {
// do some public stuff
});因为ReuiqreJS异步加载依赖项。虽然"main“放在"jquery”之前,但不能保证RequireJS会按照这个顺序加载它们。
因此,您的public/index.html可以如下所示:
<script type="..." src="js/require.js"></script>
<script type="..." src="js/main.js"></script>
<script ...>
require('public/index');
</script>发布于 2013-06-13 23:15:52
在非常简单的情况下,data-main是一个有用的捷径,但除此之外,我并不觉得它非常有用,解决方案是将其完全丢弃。
在每个页面上显式加载main,然后使用回调来加载特定于视图的脚本。
因此,您在public.html中拥有:
<script src="/Scripts/require.js"></script>
<script>
require('main', function(){
require('public');
})
</script>在client.html中:
<script src="/Scripts/require.js"></script>
<script>
require('main', function(){
require('client');
})
</script>https://stackoverflow.com/questions/16067042
复制相似问题