使用RequireJS多个data-main文件

9
我正在使用RequireJs 2.0(或尝试使用)。
目前,我的资源分为“通用”和“自定义”两部分。所有页面都应该使用通用脚本,而只有一些页面应该使用自定义脚本。
据我所知,RequireJs只接受一个"data-main"值,它保存您的配置和基本的模块要求。如果所有页面使用相同的资源,这是可以的,但是如何为自定义页面添加额外的"data-main"脚本呢?
谢谢!
1个回答

3

使用data-main属性加载通用脚本。在自定义页面中,无论何时需要使用自定义模块,只需将其包装在require调用中。您的主页(或模板或布局或服务器平台上称为什么的内容)应该如下所示:

<html><head>
<script language="javascript" src="require.js" data-main="general" ></script>
</head>

您的自定义页面标记可以如下所示(语法记忆中,请仔细检查!)
<p class="funny">I'm a funny paragraph</p>
<script language="javascript">
require(['funny-stuff'], function(fs) {
  fs.doSomthing();
});
</script>

只有要求加载的页面才会加载“funny-stuff”模块。如果您不想或无法在某些页面上使用单独的标记,可以通过将 require 调用包装在 if 语句中来动态加载依赖项。在 general.js 中实现:

// Determine if we need the custom module
if (isFunnyPage()) {
  require(['funny-stuff'], function(fs) {
    fs.doSomething();
  });
}

在运行优化器时,您需要小心,因为它会查找 require 调用中引用的依赖项,并默认将其与主文件捆绑在一起。因此,您需要配置优化器以排除自定义模块。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接