AMD and CMD are dead之KMDjs在JS工程化的努力
总览
kmdjs发布了最接近最终版本的0.0.4版本https://github.com/kmdjs/kmdjs,你已经完全可以在项目中使用。我已经无法用语言形容其完美程度。借用我发的微博:
模块管理
kmdjs仅仅需要一处配置,即main.js上部的kmdjs.config,用于配置项目名称、baseUrl,并且列出所有Class和其于路径的mapping。在开发桌面程序的时候,这个可能IDE会自动帮助管理。

依赖可视
想看整个项目的依赖关系,只需在main后面添加?view

当然也支持细粒度的依赖可视,比如引用了其他模块,查看该模块的依赖关系,这个功能会在后续版本中添加。
开发

其中,父类的静态属性也可以继承和覆盖。
调试
开启调试非常方便,只需:

就可以在任意浏览器的开发者工具里面输出经过kmdjs管线声称的Class,如:

延迟按需加载
在kmdjs v0.0.3版本,假如了kmdjs.get方法用于异步加载模块。那个版本只支持单一js文件,而0.0.4版本已经可以自动把该异步模块及其依赖全部获取。写法支持两种方式:回掉形式和promise形式:
打包
早在0.0.1版本,就支持all in one code。开启方式也非常简便:

kmdjs会自动创建一个textarea并把打包的代码放入其中,只需把该代码替换原来的<script src=”kmd.js”></script>即可正常运行。
细粒度打包
在写kmdjs第一行代码的时候,我就知道all in one code只有在业务小、或者打包成apk或者ipa时候才能使用。引用前端农民工一句话:
可以把其依赖于项全部单独压缩起来。当且仅当业务规模很小,缓存命中、按需加载收益不明显时,all in one code的方式才因为没那么矬而不被察觉其劣势。

所以,在kmdjs0.0.4版本中,可以支持细粒度打包,打包的模块会自动合并其依赖。而且被打包之后的模块可以被任意kmdjs项目使用。
是不是有点dll的感觉了?我引用某一dll,我就能使用dll里的方法!
重生入口
https://github.com/kmdjs/kmdjs
最后

update20140704
今天发布了kmdjs v0.0.5,较大的改动就是build之后的代码经过ug2全力压缩。相关的压缩代码如下:

AMD and CMD are dead之KMDjs在JS工程化的努力的更多相关文章
- AMD and CMD are dead之KMDjs集成Blob一键下载全部build包
更新 不zuo,[A/C]MD就不会死,所以kmdjs赢来来其伟大的版本0.0.6,该版本主要的更新有: 移除去了kmdjs.get(..).then的支持,只支持kmdjs.get(-,functi ...
- AMD and CMD are dead之KMDjs内核之分号
在老版本的kmdjs中,强制了分号的要求.但是总感觉不爽,因为在开发Ket - Kmdjs Extension Tools的时候,总需要导入一些开源的库,然后痛苦就来了,总是报错,一查,就是缺少分号! ...
- AMD and CMD are dead之KMDjs内核之依赖分析
有人说js中有三座大三:this.原型链和scope tree,搞懂了他们就算是js成人礼.当然还有其他不同看法的js成人礼,如熟悉js的:OOP.AP.FP.DOP.AOP.当然还听说一种最牛B的j ...
- AMD and CMD are dead之KMD规范
What's KMD? 乱世出英雄,KMD名字的由来充满了杀气. Kill AMD and CMD KMD为替代混乱的AMD和CMD世界而生,一统天下.或者让这个混乱的世界更加混乱,导致: KMD A ...
- AMD and CMD are dead之KMD.js之懒
缘由 "懒"在软件设计中,有着重大的意义.最常见的两种"懒",便是: 懒得计算 懒得加载 "懒得计算"常见于服务器端: 比如Multipla ...
- AMD and CMD are dead之KMD.js版本0.0.2发布
更新 正式从UglifyJS切换至UglifyJS2 增加依赖可视化功能 压缩代码更加方便 统一风格:如main的class名也不能省略 优化了kmdjs管道 修复了无数bug 通过src开启debu ...
- AMD and CMD are dead之js模块化黑魔法
var define, require, define2, require2; typeof JSON != "object" && (JSON = {}), fu ...
- AMD and CMD are dead之Why Namespace?
缘由 当我看到_Franky兄的微博的时候: 我觉得我有必要出来详细说说KMDjs到底有什么本质上的优势了,连教主_Franky.貘吃馍香都不能理解他的好处,那么可想而知,在前端圈.或是全端圈.或是I ...
- AMD and CMD are dead之JS工程化终极解决方案KMD.js版本0.0.1发布
回顾 经过两天晚上疯狂的开发调试,伴随着大量掉落的头发和酸痛的颈椎,KMD.js赢来了第一个稳定版本.在此期间KMD规范也有所修改和完善. 这两天主要完成的功能有: 按需加载 版本控制 模块管理 便捷 ...
随机推荐
- WPF入门教程系列二十二——DataGrid示例(二)
DataGrid示例的后台代码 1) 通过Entity Framework 6.1 从数据库(本地数据库(local)/Test中的S_City表中读取城市信息数据,从S_ Province表中读取 ...
- OleDb Source component 用法
OleDb Source component 主要是从DB中获取数据,传递给下游组件,OleDb Source component的强大之处在于 query data 的mode有四种,如图 Tabl ...
- 利用Bootstrap快速搭建个人响应式主页(附演示+源码)
1.前言 我们每个程序员都渴望搭建自己的技术博客平台与他人进行交流分享,但使用别人的博客模板没有创意.做网站后台的开发人员可能了解前端,可是自己写一个不错的前端还是很费事的.幸好我们有Bootstra ...
- jQuery 2.0.3 源码分析 钩子机制 - 属性操作
jQuery提供了一些快捷函数来对dom对象的属性进行存取操作. 这一部分还是比较简单的. 根据API这章主要是分解5个方法 .attr() 获取匹配的元素集合中的第一个元素的属性的值 或 设置 ...
- 引用类型-Object类型
创建Object实例的方式有两种. 第一种是使用new操作符后跟Object构造函数 var person = new Object(); person.name = "liao" ...
- ASP.NET:注销功能实现
原理:清空Session 1.Web窗体:index.aspx <a href="logoutHandler.ashx">注销</a> 2.一般处理程序:L ...
- hibernate笔记--双向一对多映射方法
前两节写了两个例子,分别是单向多对一的映射和单向一对多的映射,这一节继续以这个例子讲一下双向一对多的映射方法,如下图所示: 很多时候,我们既想从一对端获取多对端的信息,又想从多对端获取一对端的数据,这 ...
- 在IHttpHandler中获取session
因为业务要异步通过IHttpHandler获得数据,但还要根据当前登录人员的session过滤,因此要在在IHttpHandler中获取session 方法是HttpHandler容器中如果需要访问S ...
- Struts2 源码分析——DefaultActionInvocation类的执行action
本章简言 上一章讲到关于拦截器的机制的知识点,让我们对拦截器有了一定的认识.我们也清楚的知道在执行用户action类实例之前,struts2会先去执行当前action类对应的拦截器.而关于在哪里执行a ...
- Struts2 源码分析——调结者(Dispatcher)之action请求
章节简言 上一章笔者讲到关于struts2启动的时候加载对应的准备工作.如加载配置文件struts.xml之类的信息.而相应的这些操作都离不开Dispatcher类的帮助.如果读者只是认为Dispat ...