RequireJS使用多个数据主要的(RequireJS using multiple data-m

2019-07-29 16:19发布

我使用RequireJs 2.0(或尝试使用)。

目前,我的资产组合成零件,“一般”和“自定义”。 所有网页,应使用通用脚本,而只有一些网页要使用的定制。

从我可以告诉RequireJs,接受一个data-main持有你的配置,基本上你的模块需要的价值。 这是好的,如果所有页面使用相同的素材,但如何将添加一个额外的data-main脚本自定义页面?

谢谢!

Answer 1:

使用你的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调用,并默认包将其与主文件。 所以,你需要配置优化排除自定义模块。



文章来源: RequireJS using multiple data-main's