调试
通过下面方式,可以输出kmdjs声称的类:
在kmd.js后面加上?debug可以在console面板查看到依赖关系和输出的class。
依赖可视化
通过下面方式,可以输出使用canvas绘制的项目依赖关系图:
依赖关系,甚至是循环依赖在图中都能体现出来。
合并js
通过下面方式,可以把js合并,该js文件可直接代替kmdjs,让项目正常跑起来:
kmdjs.config中的namespace会被编译成如下的js代码:
分离js
通过下面方式,可以把js分离到每个文件中,并自动下载:
压缩打包
通过下面方式,可以把js分离到每个文件中,并自动下载:
这样的话,js文件会经过uglify2压缩打包下载。
模块抽取
很多时候,一个kmd项目需要使用另外一个kmd项目中的某些模块,这样的话需要抽取其中的模块。
kmdjs.config({ name: "HelloKanvas", baseUrl: "js", classes: [ { name: "Kanvas.DisplayObject" }, { name: "Kanvas.Bitmap" }, { name: "Kanvas.Txt" }, { name: "Kanvas.Stage" }, { name: "Kanvas.Container" }, { name: "Kanvas.Matrix2D" }, { name: "Kanvas.Shape.Circle" }, { name: "Kanvas.Sprite" }, { name: "Kanvas.Loader" }, { name: "Kanvas.RAF" }, { name: "Kanvas.UID" }, { name: "Kanvas.UI.Button" }, { name: "Kanvas.UI.ShapeButton" }, { name: "Kanvas.TWEEN" }, { name: "Kanvas.Shape" } ], build: [ "Kanvas.DisplayObject", "Kanvas.Bitmap" ]});
如上面的的代码,会自动以kmdjs.exec(...)的形式build出DisplayObject和Bitmap以及他们依赖的模块。
抽取模块的使用
这里假定抽取出来的模块名字叫做Kanvas.js,再另外的kmd项目中的kmdjs.config如下配置:
kmdjs.config({ name: "KanvasGame", baseUrl: "js", deps: [ { url: "Kanvas.js", classes: [ { name: "Kanvas.DisplayObject" }, { name: "Kanvas.Bitmap" } ] } ], classes: [ { name: "KanvasGame.Util" }, { name: "KanvasGame.MainPanel" }, { name: "KanvasGame.Game" } ]});
不管是合并、打包压缩、分离等,最后kmdjs都会拉平所有依赖,补全所有namespace,所以kmdjs是支持循环依赖,并且告诉人们,世界上根本没有循环依赖那回事儿。
kmdjs项目地址:
待续...