我是requireJS的新手并且学习它以便我可以在我当前的应用程序中使用它。
在阅读requireJS的API文档时,我遇到了捆绑(http://requirejs.org/docs/api.html#config-bundles)作为requireJS的配置选项
requirejs.config({
bundles: {
'primary': ['main', 'util', 'text', 'text!template.html'],
'secondary': ['text!secondary.html']
}
});
require(['util', 'text'], function(util, text) {
//The script for module ID 'primary' was loaded,
//and that script included the define()'d
//modules for 'util' and 'text'
});
API说明:
如果进行构建并且构建目标不是现有模块ID,或者如果构建的JS文件中的加载器插件资源不应由加载器插件加载,则 Bundles config非常有用。
但是在这里我无法理解为什么我们需要捆绑以及何时应该使用它?
答案 0 :(得分:27)
构建大型SPA(单页应用程序)时,必须连接并缩小文件。这样做的问题在于,你可能会得到一个大小的缩小的js文件,它可以达到几个megs。
为了解决这个问题,需要引入捆绑功能,它允许您将文件打包到多个捆绑包中,并且只在需要时加载。
因此,例如,如果您有一个包含'home'和'about'的页面,您可以创建一个类似的包:
bundles: {
'home': ['home', 'util', 'text', 'text!home.html'],
'about': ['text!about.html']
}
然后只有在您实际点击about页面时才会提供about页面资源。这样你就会懒得加载资源。
要获得更好的解释和示例,请观看以下精彩视频:http://vimeo.com/97519516
相关部分大约是39分钟。