Skip to content
雨夜带刀 edited this page Sep 8, 2013 · 2 revisions

为什么需要合并?

在开发阶段,模块是一个独立的 js 文件,每个文件是只会有一个模块,但是模块要部署到线上,如果不希望上线时也是一个个独立的 js 文件,就需要用到合并工具。是否需要合并模块取决于你自己的缓存和请求数的策略了。

合并工具会做什么?

AMD 规范的模块,在合并前有匿名模块和具名模块,并且在加载模块时需要对依赖进行分析。合并工具会在合并的时候进行依赖的分析,会按照依赖的顺序来合并文件,开发者只要在开发阶段定义好模块的依赖即可。如果是匿名模块,合并工具在合并时将会自动添加好模块名。

如何使用?

seed.js 提供了一个 seedCombo 的合并工具,该合并工具运行在 node.js 的环境中,配置很简单。将下面的代码保存成 build.js:

require( './seedcombo' ).seedCombo({
    baseUrl : './',
    uglifyUrl : '../uglify/uglify-js',
    modules : [{
        input : ['hello'],
        output : './hello-combo.js'
    }]   
});

配置好后,可以直接在 cmd 中运行命令:node build,当然,前提是你必须安装了 node.js。

参数说明:

require 中就是 seedcombo 存放的路径。

baseUrl 是需要合并的模块的基础路径。

uglifyUrl 是压缩工具 uglify 的路径。

modules 可以传一组待合并的数据。

input 一个或一组待合并的的模块,(多个模块压缩成一个文件就是一组)。

output 输出合并后的文件路径。

压缩

seedCombo 提供了一个压缩的接口,可以在输出合并文件时选择是否使用 uglify 压缩该文件,只要配置好 uglify 的存放路径就会默认对输出文件进行压缩。uglify 的安装可以看这里