Build and combo - daxingplay/grunt-kmc GitHub Wiki

试用场景

打包业务模块,同时将业务模块中用到的KISSY、gallery组件,生成一个依赖文件,用于KISSY的自动combo。

示例

我们以gallery的组件droplist为例,他的0.3目录的结构如下(我把一些和打包无关的目录去掉了)

|-- build
|   |-- index-min.js
|   `-- index.js
|-- datalist.js
|-- droplist.js
|-- index.js
`-- viewscroll.js

这个目录结构非常简单,也比较适合大部分的业务场景,业务入口文件是index.js,然后他依赖droplist.js

那么,grunt中的kmc的target需要这么配置:

kmc: {
            options: {
                depFilePath: 'map.js',
                packages: [
                    {
                        name: '<%= pkg.name %>',
                        path: '../'
                    }
                ],
                map: ["<%= pkg.name %>/", "gallery/<%= pkg.name %>/"](/daxingplay/grunt-kmc/wiki/"<%=-pkg.name-%>/",-"gallery/<%=-pkg.name-%>/")
            },
            main: {
                files: [
                    {
                        src: "<%= pkg.version %>/index.js",
                        dest: "<%= pkg.version %>/build/index.js"
                    }
                ]
            }
        }

也就是说,只要在options中增加一个depFilePath的配置,配置好输出map文件的路径即可。

可以看到index.js文件以及它的依赖文件被打包成了index.js,同时生成了依赖文件map.js,文件内容为:


KISSY.config('modules', {
 'gallery/droplist/0.3/index': { requires: ['dom', 'event']} 
});