调试

通过下面方式,可以输出kmdjs声称的类:

<script src="../dist/kmd.js?debug" data-main="js/main"></script>

在kmd.js后面加上?debug可以在console面板查看到依赖关系和输出的class。

依赖可视化

通过下面方式,可以输出使用canvas绘制的项目依赖关系图:

<script src="../dist/kmd.js" data-main="js/main?view"></script>

依赖关系,甚至是循环依赖在图中都能体现出来。

合并js

通过下面方式,可以把js合并,该js文件可直接代替kmdjs,让项目正常跑起来:

<script src="../dist/kmd.js" data-main="js/main?combine"></script>

kmdjs.config中的namespace会被编译成如下的js代码:

分离js

通过下面方式,可以把js分离到每个文件中,并自动下载:

<script src="../dist/kmd.js" data-main="js/main?split"></script>

压缩打包

通过下面方式,可以把js分离到每个文件中,并自动下载:

<script src="../dist/kmd.js" data-main="js/main?build"></script>

这样的话,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项目地址:https://github.com/kmdjs/kmdjs

待续...

kmdjs指令大全的更多相关文章

  1. Linux日常使用指令大全

    Linux日常使用指令大全 Java代码 www.ahlinux.com 001.日常维护常用查询命令 #top    显示系统进程 #clear  清理屏幕信息 #cat /etc/redhat-r ...

  2. linux指令大全(完整篇)(转)

       http://blog.chinaunix.net/uid-9681606-id-1998590.html  linux指令大全(完整篇)(转) 2009-03-17 01:21:46 分类:  ...

  3. Linux学习笔记之vim操作指令大全

    0x00 关于Vim Vim是款强大的文本编辑器,但是众多指令需要学习,这次记录了指令大全方便以后翻阅. Vim的几种模式 正常模式:可以使用快捷键命令,或按:输入命令行. 插入模式:可以输入文本,在 ...

  4. Linux超全实用指令大全

    参考 Linux超全实用指令大全

  5. Linux 指令大全

    作为一个小前端,以前有我们的运维大神在的时候,要给服务器做什么配置的时候就找他(那时幸福到哭),如今他走了,公司也没招人(想把这个钱省下来,让我发现了,毕竟我能当小运维用,虽然很这方面很渣渣,哈哈,偷 ...

  6. IL指令大全(转)

    名称 说明 Add 将两个值相加并将结果推送到计算堆栈上. Add.Ovf 将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上. Add.Ovf.Un 将两个无符号整数值相加,执行溢出检查,并且 ...

  7. angular指令大全

    这篇文章的案例都是来自官方,引用的cdn来自bootcss, 因为angular的官方网站被屏了, 所以要翻, 不过我把整个文档下回来了,方便大家下载可以点击: 打开下载英文版 angular的指令 ...

  8. IL指令大全

    IL是.NET框架中中间语言(Intermediate Language)的缩写.使用.NET框架提供的编译器可以直接将源程序编译为.exe或.dll文件,但此时编译出来的程序代码并不是CPU能直接执 ...

  9. Angualar:指令大全

    指令: 内置渲染指令 内置事件指令 内置节点指令 自定义指令 restrict template replace属性 templateUrl属性 trnsclude priorty terminal属 ...

随机推荐

  1. HTTP学习二:Web应用中的HTTP

    1 HTTP连接 1.1 TCP连接对性能的影响 TCP三次握手如下图: 如上图,建立一次TCP连接要经过三个步骤.HTTP是建立在TCP之上的,因此TCP连接的性能直接影响HTTP的性能. TCP影 ...

  2. MVC:The name 'Scripts' does not exist in the current context

    汇总:http://www.cnblogs.com/dunitian/p/4523006.html#efmvc 解决:在View下面的Web.Config的namespaces添加 <add n ...

  3. c#写windows服务

    序言 前段时间做一个数据迁移项目,刚开始用B/S架构做的项目,但B/S要寄存在IIs中,而IIs又不稳定因素,如果重启IIs就要打开页面才能运行项目.有不便之处,就改用Windows服务实现.这篇就总 ...

  4. 传智播客--ADO.net--SqlBulkCopy批量插入数据(小白必知)

    一般情况下,我们在向数据库中插入数据时用Insert语句,但是当数据量很大的时候,这种情况就比较缓慢了,这个时候就需要SqlBulkCopy这个类. SqlBulkCopy本身常用的函数有这么几个 D ...

  5. 希尔排序及希尔排序java代码

    原文链接:http://www.orlion.ga/193/ 由上图可看到希尔排序先约定一个间隔(图中是4),然后对0.4.8这个三个位置的数据进行插入排序,然后向右移一位对位置1.5.9进行插入排序 ...

  6. 深入理解javascript对象系列第一篇——初识对象

    × 目录 [1]定义 [2]创建 [3]组成[4]引用[5]方法 前面的话 javascript中的难点是函数.对象和继承,前面已经介绍过函数系列.从本系列开始介绍对象部分,本文是该系列的第一篇——初 ...

  7. 通过setTimeout来取消因大量计算造成的网页卡顿

    js是单线程的,所以有些大量计算的操作会占用线程资源,导致页面卡住. 今天遇到这样一个场景,选择一个下拉框之后,对数据进行筛选,这个过程中有大量计算,点了selecte的option之后,option ...

  8. php创建新用户注册界面布局实例

    php创建新用户注册界面布局实例 <!DOCTYPE> <html> <head> <title>Load page</title> < ...

  9. Quartz 在 Spring 中如何动态配置时间--转

    原文地址:http://www.iteye.com/topic/399980 在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度. 有关调度的实现我就第一就想到了Quartz这个开源 ...

  10. C语言 第四章 关系、逻辑运算与分支流程控制

    一.关系运算 若干表达式用关系运算符连接而成,就构成关系表达式. 关系表达式中,表达式成立,其值为1(真):表达式不成立,其值为0(假).其他表达式中,其结果如果是非0则为真,结果为0则为假. 关系运 ...