专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > JavaScript

requirejs模块化开发后的归并压缩

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
requirejs模块化开发后的合并压缩

requireJs 项目压缩合并

必要性

 

requireJs好处无需过多介绍,为了应对日益复杂,大规模的Javascript开发,我们一般将复杂的逻辑划分成一个个小单元模块,化整为零。这个时候一个项目要引用几十个单元也是有可能的,每个单元都是一个js文件,如果上线的都是这些小的文件,每次加载页面都要向服务器发起这么多请求,将对性能造成一定影响。所以现在就需要一个工具可以将这些文件在不影响业务的前提下智能压缩合并,以减少多余的请求,于是 r.js 就诞生了。r.js的压缩工具使用 UglifyJS 或者 Closure Compiler。此外r.js需要node环境,当然也可以运行在Java环境的 Rhino。

下面就平时项目中常用的两种场景对 r.js 的使用方法进行总结 

注意:r.js 压缩所用的js文件必须得是本地的

 

 

 

场景一



 
示例中的项目为单一目录,所有需要用的js都在一个目录,主文件为 main.js,现要将所有文件压缩合并到文件 built.js 中

 

1,确定有node环境

打开cmd,进入项目目录进去r.js所在的目录

输入命令:node r.js -o baseUrl=./ name=main out=../js_min/built.js

 

参数说明:

baseUrl 起始路径

name 入口文件

out 输出文件

 

合并压缩后就可以在页面上调用了

压缩之前的调用:<script data-main="js/main" src="http://s.thsi.cn/js/require.min.js"></script>

压缩之后的调用:<script data-main="js_min/built" src="http://s.thsi.cn/js/require.min.js"></script>

 

 

场景二

 


 

 

配置文件built.js 的内容:

 

{
    baseUrl: "./",                                     
    dir: "./build-file/",
    optimize: "uglify",
    modules: [{
        name: "./main"
    }],
    paths: {
        'jquery'            : '../common/jquery',
        'ClientHqData'      : '../common/ClientHqData',
        'StockCallBack'     : '../common/StockCallBack',
        'StockTable'        : '../common/StockTable',
        'hqRender'          : './hqRender',
        'swfobject'         : '../common/swfobject',
        'mmsj'              : '../common/mmsjflash',
        'setDate'           : '../common/setDatePicker',
        'clientInterface'   : '../common/clientInterface',
        'excanvas'          : '../common/excanvas',
        'flot'              : '../common/jquery.flot',
        'dpfxb'             : '../common/dpfxb',
        'subscribeSetup'    : '../common/subscribeSetup'
    }
}

 

#baseUrl  默认的情况下,所有模块都是相对于这个路径的,如果没有设置,则模块的加载是相对于 built 文件所在目录
#dir  输出目录的路径,如果不设置就默认为和 built同级的目录
#optimize  代码优化方式,常用可以设置的值:uglify(使用UglifyJS压缩代码,默认值)、none(不做合并压缩)
#modules 定义要被优化的模块数组,这里是指模块名称
#paths 整个项目的引用情况,这样的话可以不用单独写在入口文件里面了

 

命令: node r.js -o built.js
#built.js 为配置文件

 

引用(压缩合并前):
<script data-main="/js/gnbd/main" src="http://s.thsi.cn/js/require.min.js"></script> 
引用(压缩合并后):
<script data-main="/js/gnbd/build-file/main" src="http://s.thsi.cn/js/require.min.js"></script>
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: