我使用RequireJs 2.0(或尝试使用)。
目前,我的资产组合成零件,“一般”和“自定义”。 所有网页,应使用通用脚本,而只有一些网页要使用的定制。
从我可以告诉RequireJs,接受一个data-main
持有你的配置,基本上你的模块需要的价值。 这是好的,如果所有页面使用相同的素材,但如何将添加一个额外的data-main
脚本自定义页面?
谢谢!
我使用RequireJs 2.0(或尝试使用)。
目前,我的资产组合成零件,“一般”和“自定义”。 所有网页,应使用通用脚本,而只有一些网页要使用的定制。
从我可以告诉RequireJs,接受一个data-main
持有你的配置,基本上你的模块需要的价值。 这是好的,如果所有页面使用相同的素材,但如何将添加一个额外的data-main
脚本自定义页面?
谢谢!
使用你的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
调用,并默认包将其与主文件。 所以,你需要配置优化排除自定义模块。