调试

通过下面方式,可以输出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. 使用Event Message 对 Package 进行Troubleshoot

    在SSIS Server上,发现一个Package Job运行异常,该Package处于僵死状态.从 Job Activity Monitor中看到该Job一直处于运行状态,但是,DW中没有执行任何Q ...

  2. 数据结构与算法JavaScript (二) 队列

    队列是只允许在一端进行插入操作,另一个进行删除操作的线性表,队列是一种先进先出(First-In-First-Out,FIFO)的数据结构 队列在程序程序设计中用的非常的频繁,因为javascript ...

  3. OpenNURBS 3DM Viewer

    OpenNURBS 3DM Viewer eryar@163.com Abstract. The openNURBS Toolkit consists of C++ source code for a ...

  4. 【转】WPF 给DataGridTextColumn统一加上ToolTip

    源地址:http://dongguojun.iteye.com/blog/1671963 我发现WPF中DataGridTextColumn直接设置它的ToolTipService.Tooltip并不 ...

  5. alert()与console.log()的区别

    [1]alert() [1.1]有阻塞作用,不点击确定,后续代码无法继续执行 [1.2]alert()只能输出string,如果alert输出的是对象会自动调用toString()方法 e.g. al ...

  6. JAVA服务器搭建之问题总结

    负责维护公司产品的web服务器搭建与维护,最近遇到一下状况,今天在这里简单总结一下,希望对于刚刚一些刚入行的小伙伴有所帮助,避免再走弯路. 第一点:Tomcat内存设置: 一.常见的Java内存溢出有 ...

  7. Easyui 让DataGrid适应浏览器宽度

    DataGrid有100%宽度的设置,但是有时不是很让人满意,比如你你放大或者拉放你的浏览器,那么DataGrid只维持第一次加载的宽高,非常难看 $('#List').datagrid({ url: ...

  8. ksoap调用webservice

    Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布 ...

  9. isPrototypeOf&&getPrototypeOf

    在JavaScript这个一切皆为对象的世界里,难免会判断原型链的问题.那么我们就有必要了解了解isPrototypeOf和getPrototypeOf这两个方法咯. 1.isPrototypeOf ...

  10. EntityFramework 分页问题探讨之 OrderBy

    应用场景 最近被应用程序中页面加载慢的问题所折磨,看似容易的问题,其实并不容易(已经持续两天时间了),经过"侦查",发现了两个"嫌疑犯": EntityFram ...