grunt-kissy-dp
针对kissy依赖做二次处理。针对目录做别名解析。
警告:插件目前是针对特定的目录结构来实现的,所以不建议其他人使用~
Getting Started
依赖 Grunt ~0.4.1
安装包
npm install grunt-kissy-dp --save-dev
加载包
grunt;
The "kissy_dp" task
Overview
grunt
Options
// kmc需要的包配置,对应的path为脚本所在的路径
page: [
{
name: 'widget',
path: srcPagePath,
charset: 'utf-8'
}
],
// kmc见:https://github.com/daxingplay/grunt-kmc
common: [
{
name: "common",
path: srcPath,
charset: 'utf-8'
}
],
// page级别的依赖信息输出的路径
dependsFile: srcPagePath + "/depends.json",
// common目录的依赖信息输出的路径
commonDepend: srcCommonPath + "/depends.json",
// 最终的依赖文件输出的路径。这个文件需要优先被加载到页面中~
buildDepends: buildPagePath + "/" + market + "/dep.js",
// 依赖文件内容是否压缩
minify: true
attention
对widget
目录下的模块目录下的index.js为入口文件开始分析处理。
- 对文件路径进行分析,获得
dirName
(widget的名称)和baseName
(除去dirName的widget的路径)。 - 配置正则表达式避免同级目录相互引用。同级的widget下相互之间不允许requires。避免模块间的直接依赖。
- 配置kmc,添加page目录的配置,对widget目录下的文件进行打包。即,widget目录内的requires会被打包到一起。
- 添加common的配置,用于依赖分析。依赖分析是调用了
kmc.combo
方法。 - 对生成的依赖信息进行二次处理。
- 获取当前kissy模块的依赖。
- 排除掉与当前分析的文件同目录的文件。若是不是同目录的文件或是样式文件才保留。(因为文件会打包在一起,不需要另外添加这个依赖)
- 排除掉相同的依赖。比如一些基础依赖
node/event/io
等。
- 生成每一个页面级的依赖信息文件,输出到页面目录下。该文件显示了当前页面中的所有
widget
的依赖。 - 对所有依赖信息进行合并,生成用于KISSY分析的依赖文件。
- 若没有依赖,就不添加到依赖配置中。
- 若依赖了common的组件,则获取到该组件的依赖信息
- 合并页面的依赖和common的依赖。
- 输出依赖文件到build目录下。
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
Release History
(Nothing yet)