博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RequireJS进阶(三)
阅读量:5084 次
发布时间:2019-06-13

本文共 1132 字,大约阅读时间需要 3 分钟。

进阶的前面两篇讲述了r.js如何通过命令行把所有的模块压缩为一个js文件或把所有的css压缩为一个css文件。其中包括一些压缩配置参数的使用。

 

但以上两种方式有几个问题

1、通过命令手动配置压缩选项显得很呆板

2、都仅合并为一个文件

对于最后只生成一个文件的库来说,这种方式并无不妥。比如jQuery,它的工程中小文件有20多个,打包后只有一个jquery-1.x.x.js。对于多数实际应用项目来说,可能打包后需要生成多个js文件。有些是页面打开时就要用到的,有些是用户点击或输入时按需加载的。

 

r.js有另外一种方式来合并压缩,即通过一个配置文件(如build.js)。配置文件内部采用前端工程师非常熟悉JSON格式。这样当项目开发目录固定后,配置文件也相应固定。通过配置文件就很好的隔离了开发环境及上线环境。

 

这次我们创建的目录中包含所有前端资源,js,css,图片。

其中有两个页面page1.html,page2.html。这两个页面分别使用page1.js和page2.js。

 

page1.js依赖于event和selector,page1.js依赖于event、selector和jQuery。jQuery是非本地的,没有合并前我们直接访问这两个页面,那么单个的js文件会依次下载。

 

现在使用r.js来合并压缩,使每个页面除下载require.js外只下载各自合并的大文件page1.js和page2.js。

build.js如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
({
    
appDir:
"./"
,
    
baseUrl:
"js"
,
    
dir:
"../r6-built"
,
    
paths: {
        
jquery:
'empty:'
    
},
    
modules: [
        
{
            
name:
"page1"
        
},
        
{
            
name:
"page2"
        
}
    
]
})

 

进入命令行输入如下命令

node r.js -o build.js

会发现在和r6同级的目录生成了r6-built目录

该目录包含于r6一样的层级结构,这时访问该目录中的page1.html,page2.html。

这时的page1.js和page2.js就是其它模块文件的合并。另外在r6-built中其它的模块文件也被压缩了。

 

在build.js中可以配置很多其它参数,可以在这个中找到更多配置选项。这里不一一列举。

 

总结:

通过配置文件方式可以实现更加强大,灵活的合并工作。可以生成多个合并文件,包括不同页面的js,css。

转载于:https://www.cnblogs.com/zhepama/archive/2013/05/01/3053271.html

你可能感兴趣的文章
axios的get,post方法
查看>>
awk条件语句
查看>>
linux下如何启动sybase
查看>>
使用HTML实现对汉字拼音的支持
查看>>
冒泡排序
查看>>
模块 (Module)
查看>>
kmp&扩展kmp
查看>>
我需要在Web上完成一个图片上传的功能后续(+1)
查看>>
PLMN和PSTN
查看>>
Android绘制基础及手写绘制实例
查看>>
学习笔记 java多线程(四)线程间协作
查看>>
[转]单点登录原理与简单实现
查看>>
NABCD分析
查看>>
实验4
查看>>
初次使用Windbg检查C#程序内存
查看>>
前端开发时经常会被浏览器缓存搞得头大,apache设置一下就好了
查看>>
【HighCharts系列教程】五、版权属性——Credits
查看>>
Java去掉Html标签的方法
查看>>
MyEclipse破解详谈
查看>>
Linux学习笔记之一————什么是Linux及其应用领域
查看>>