首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RequireJS和通用配置

RequireJS和通用配置
EN

Stack Overflow用户
提问于 2013-04-18 02:05:23
回答 2查看 2.7K关注 0票数 4

有没有可能在一个地方配置requirejs并在模块中重用它?

比如

main.js:

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
define(["main", "jquery", function(main, $) {
    // do some public stuff
});

client.js:

代码语言:javascript
运行
复制
define(["main", "jquery", function(main, $) {
    // do some client stuff
});

在我的网站的公共部分

代码语言:javascript
运行
复制
<script type="..." src="js/require.js" data-main="js/public.js"></script>

在web的客户端

代码语言:javascript
运行
复制
<script type="..." src="js/require.js" data-main="js/client.js"></script>

我也想有一个模块的每一页。例如,在public上有一个索引模块

代码语言:javascript
运行
复制
<script ...>
    require('public/index');
</script>

public/index.js:

代码语言:javascript
运行
复制
define(["jquery", "slideshow"], function($, s) {
    $( function() { s.init() } );
});

使用RequireJS可以做到这一点吗?

谢谢你的回答。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-18 02:17:52

当你让问题更清晰时,我会编辑我的答案。

在任何包含require.js的页面中,都应该包含main.js来定义RequireJS配置。

你不能像这样做

代码语言:javascript
运行
复制
define(["main", "jquery", function(main, $) {
    // do some public stuff
});

因为ReuiqreJS异步加载依赖项。虽然"main“放在"jquery”之前,但不能保证RequireJS会按照这个顺序加载它们。

因此,您的public/index.html可以如下所示:

代码语言:javascript
运行
复制
<script type="..." src="js/require.js"></script>
<script type="..." src="js/main.js"></script>
<script ...>
    require('public/index');
</script>
票数 0
EN

Stack Overflow用户

发布于 2013-06-13 23:15:52

在非常简单的情况下,data-main是一个有用的捷径,但除此之外,我并不觉得它非常有用,解决方案是将其完全丢弃。

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

因此,您在public.html中拥有:

代码语言:javascript
运行
复制
<script src="/Scripts/require.js"></script>
<script>
require('main', function(){
  require('public');
})
</script>

在client.html中:

代码语言:javascript
运行
复制
<script src="/Scripts/require.js"></script>
<script>
require('main', function(){
  require('client');
})
</script>

I've written a blog post expounding on this idea here.

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16067042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档