总览

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工程化的努力的更多相关文章

  1. AMD and CMD are dead之KMDjs集成Blob一键下载全部build包

    更新 不zuo,[A/C]MD就不会死,所以kmdjs赢来来其伟大的版本0.0.6,该版本主要的更新有: 移除去了kmdjs.get(..).then的支持,只支持kmdjs.get(-,functi ...

  2. AMD and CMD are dead之KMDjs内核之分号

    在老版本的kmdjs中,强制了分号的要求.但是总感觉不爽,因为在开发Ket - Kmdjs Extension Tools的时候,总需要导入一些开源的库,然后痛苦就来了,总是报错,一查,就是缺少分号! ...

  3. AMD and CMD are dead之KMDjs内核之依赖分析

    有人说js中有三座大三:this.原型链和scope tree,搞懂了他们就算是js成人礼.当然还有其他不同看法的js成人礼,如熟悉js的:OOP.AP.FP.DOP.AOP.当然还听说一种最牛B的j ...

  4. AMD and CMD are dead之KMD规范

    What's KMD? 乱世出英雄,KMD名字的由来充满了杀气. Kill AMD and CMD KMD为替代混乱的AMD和CMD世界而生,一统天下.或者让这个混乱的世界更加混乱,导致: KMD A ...

  5. AMD and CMD are dead之KMD.js之懒

    缘由 "懒"在软件设计中,有着重大的意义.最常见的两种"懒",便是: 懒得计算 懒得加载 "懒得计算"常见于服务器端: 比如Multipla ...

  6. AMD and CMD are dead之KMD.js版本0.0.2发布

    更新 正式从UglifyJS切换至UglifyJS2 增加依赖可视化功能 压缩代码更加方便 统一风格:如main的class名也不能省略 优化了kmdjs管道 修复了无数bug 通过src开启debu ...

  7. AMD and CMD are dead之js模块化黑魔法

    var define, require, define2, require2; typeof JSON != "object" && (JSON = {}), fu ...

  8. AMD and CMD are dead之Why Namespace?

    缘由 当我看到_Franky兄的微博的时候: 我觉得我有必要出来详细说说KMDjs到底有什么本质上的优势了,连教主_Franky.貘吃馍香都不能理解他的好处,那么可想而知,在前端圈.或是全端圈.或是I ...

  9. AMD and CMD are dead之JS工程化终极解决方案KMD.js版本0.0.1发布

    回顾 经过两天晚上疯狂的开发调试,伴随着大量掉落的头发和酸痛的颈椎,KMD.js赢来了第一个稳定版本.在此期间KMD规范也有所修改和完善. 这两天主要完成的功能有: 按需加载 版本控制 模块管理 便捷 ...

随机推荐

  1. CSS3学习总结3-3D与动画

    前言:这是篇CSS3中关于3D效果与动画相关的内容. (1)在CSS3的3D效果中,需要结合透视perspective的属性才能看到3d的效果,这个属性在屏幕上实现了元素近大远小的效果,所以要使用CS ...

  2. 【hbase0.96】基于hadoop搭建hbase的心得

    hbase是基于hadoop的hdfs框架做的分布式表格存储系统,所谓表格系统就是在k/v系统的基础上,对value部分支持column family和column,并支持多版本读写. hbase的工 ...

  3. 关于大小型项目如何最大限度提高WebAPi性能

    前言 WebAPi作为接口请求的一种服务,当我们请求该服务时我们目标是需要快速获取该服务的数据响应,这种情况在大型项目中尤为常见,此时迫切需要提高WebAPi的响应机制,当然也少不了前端需要作出的努力 ...

  4. ASP.NET MVC Application_Error 无效不执行

    我们一般在开发 ASP.NET MVC 应用程序的时候,会在 Application_Error 中添加异常日志记录,一般会记录 500 的错误信息,但如果应用程序在出错的时候,Application ...

  5. 用PHP抓取页面并分析

    在做抓取前,记得把php.ini中的max_execution_time设置的大点,不然会报错的.

  6. 3.Java基础之Date对象

    毕向东老师Java基础学习笔记——Date对象 今天学习Java中的Date对象后,感觉这个对象对我们主要有以下几点用处. 1.获取时间和日期并按照自己定义的格式显示. 2.网站设计时显示时间.  知 ...

  7. 学习php中的正则表达式,PHP正则表达式基础

    语法格式:位于定界符"/"之间. 较为常用的元字符包括: “+”, “*”,以及 “?”. 其中, “+”元字符规定其前导字符必须在目标对象中连续出现一次或多次, “*”元字符规定 ...

  8. Cache-Aside Pattern(缓存模式)

    Load data on demand into a cache from a data store. This pattern can improve performance and also he ...

  9. Net设计模式实例之适配器模式(Adapter Pattern)

    一.适配器模式简介(Brief Introduction) 适配器模式,将一个类装换成客户期望的另外一个接口.Adapter模式使的原本由于接口不兼容而不能工作的那些类可以一起工作. 二.解决的问题( ...

  10. Vue.js先入个门看看

    使用vue.js原文介绍:Vue.js是一个构建数据驱动的web界面库.Vue.js的目标是通过尽可能简单的API实现响应式数据绑定和组合的视图组件.vue.js上手非常简单,先看看几个例子: 例一: ...