RequireJS和common config

Dou*_*ish 4 javascript config requirejs

是否可以在一个地方安装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"]
     }
}
}); 
Run Code Online (Sandbox Code Playgroud)

public.js:

define(["main", "jquery", function(main, $) {
    // do some public stuff
});
Run Code Online (Sandbox Code Playgroud)

client.js:

define(["main", "jquery", function(main, $) {
    // do some client stuff
});
Run Code Online (Sandbox Code Playgroud)

在我的公共部分网络上

<script type="..." src="js/require.js" data-main="js/public.js"></script>
Run Code Online (Sandbox Code Playgroud)

并在网络的客户端部分

<script type="..." src="js/require.js" data-main="js/client.js"></script>
Run Code Online (Sandbox Code Playgroud)

而且我想为每个页面都有一个模块.例如,在公共场合有一个索引模块

<script ...>
    require('public/index');
</script>
Run Code Online (Sandbox Code Playgroud)

公共/ index.js:

define(["jquery", "slideshow"], function($, s) {
    $( function() { s.init() } );
});
Run Code Online (Sandbox Code Playgroud)

RequireJS有可能吗?

谢谢你的回答.

Geo*_*uer 8

data-main 在非常简单的情况下,它是一个有用的快捷方式,但除此之外我没有发现它非常有用,解决方案是完全转储它.

在每个页面上显式加载main,然后使用回调加载特定于视图的脚本.

所以你在public.html:

<script src="/Scripts/require.js"></script>
<script>
require('main', function(){
  require('public');
})
</script>
Run Code Online (Sandbox Code Playgroud)

并在client.html中:

<script src="/Scripts/require.js"></script>
<script>
require('main', function(){
  require('client');
})
</script>
Run Code Online (Sandbox Code Playgroud)

我在这里写了一篇关于这个想法的博客文章.