更新

正式从UglifyJS切换至UglifyJS2

增加依赖可视化功能

压缩代码更加方便

统一风格:如main的class名也不能省略

优化了kmdjs管道

修复了无数bug

通过src开启debug模式

代码格式强制分号结束,不然报错

问题

1.从UglifyJS切换至UglifyJS2,主要是UglifyJS2把AST更加严格规范化,而且提供了方便的ast.walk遍历js代码的语法树,把任何代码分析得无比透彻,比巨复杂无比的正则表达式稳定靠谱多了,通过UglifyJS,使开发者能把js代码随意组装优化压缩美化,使得使用者有着无限的发挥空间。

2.UglifyJS2不兼容老版本IE,大量使用了新的方法,所以这里浪费了一点时间去修正prototype上的方法。诸如:JSON、Array、String等。

3.使用过kmdjs的开发者都知道,kmdjs没有require关键字。在诸如cmd和amd中,main.js必须使用require关键字。而这非常违背常规思维,因为main.js也是工程中的代码,既然是工程中的代码,那它一定也要处于某个模块下,也就是某一命名空间下,而kmdjs则是这么干的。main.js里面除了多了kmdjs.config,其余代码和其他js一样,都是使用define开头,都必须申明一个名字。

4.关于给main.js强制加入一个config,这个是非常不人道,以为main.js只是一个入口。kmdjs.config不属于其职责范畴。但是这个是被逼无奈的结果。在最早的kmdjs版本中,config使用单独的js存放,在载入kmdjs的同时,会通过xmlHttpRequest去发起AJAX请求加载config,config存了项目名称以及baseUrl和命名空间、路径和class的关系。未来config还会负责配置那种js lazy load。但是这种设计导致的一个重大隐患就是,浏览kmdjs项目必须起一web服务器,使用文件系统打开则会报错。所以果断去掉了,直接把config存在main.js最上部。

KMD.js VNEXT

下一个版本的kmdjs,也就是v0.0.3,将加入一重大且实用的lazy load。敬请期待……

地址

https://github.com/kmdjs

AMD和CMD已死。我不是认真,我只是为了看到AMD和CMD躺在血泊里。

AMD and CMD are dead之KMD.js版本0.0.2发布的更多相关文章

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

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

  2. AMD and CMD are dead之KMD.js依赖可视化工具发布

    使用 require("MyAapp.DepTree", function (DepTree) { DepTree(({ renderTo: "holder", ...

  3. AMD and CMD are dead之KMD规范

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

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

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

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

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

  6. AMD and CMD are dead之KMDjs在JS工程化的努力

    总览 kmdjs发布了最接近最终版本的0.0.4版本https://github.com/kmdjs/kmdjs,你已经完全可以在项目中使用.我已经无法用语言形容其完美程度.借用我发的微博:   模块 ...

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

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

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

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

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

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

随机推荐

  1. 薪资至少10K的一道题,你能拿下吗

    我所了解的华为: 应届本科生8k+ 应届硕士生10k+ 应届博士生12k+ 看到后什么感想?有没有只恨生不逢时运不佳的感觉? 很多人做3年多甚至更久,才能达到这个薪资水平,还不如一个新生. 在我看来, ...

  2. 【笔记】js获取当前点击元素的索引

    以前用jq 做过图片切换 滑动之类的特效现在想用js 试试是怎么一回事 jq图片切换的思路是用index()函数获取当前点击的按钮的索引然后根据索引值将对应索引的图片显示出来 于是查了一下js 是如何 ...

  3. SSIS Design4: 处理外键

    假设一种场景:有一个ETL系统,通过记录数据最后更新的时间,对数据进行增量更新.如果Data Warehouse中存在有外键关系的两个表,Group(GroupID,StudentID,GroupDa ...

  4. markdown语法练习

    Markdown练习 这篇文章 主要用于练习markdown各种基本语法. 这篇文章 主要用于练习markdown各种基本语法. 1.标题设置 1.通过在文字下方添加"="或者&q ...

  5. 前端学PHP之命名空间

    × 目录 [1]定义 [2]多命名空间 [3]名称解析[4]访问内部元素[5]全局空间[6]别名和导入 前面的话 从广义上来说,命名空间是一种封装事物的方法.在很多地方都可以见到这种抽象概念.例如,在 ...

  6. 深入理解DOM事件机制系列第一篇——事件流

    × 目录 [1]历史 [2]事件冒泡 [3]事件捕获[4]事件流 前面的话 javascript操作CSS称为脚本化CSS,而javascript与HTML的交互是通过事件实现的.事件就是文档或浏览器 ...

  7. C#由变量捕获引起对闭包的思考

    前言 偶尔翻翻书籍看看原理性的东西确实有点枯燥,之前有看到园中有位园友说到3-6年工作经验的人应该了解的.NET知识,其中就有一点是关于C#中的闭包,其实早之前在看书时(之前根本不知道C#中还有闭包这 ...

  8. 利用angular结合translate为项目实现国际化

    前言 利用H5项目第一版本已经上线,话说有了第一期就有了第二期,这不要为第二期做准备了,老大发话第一件事就要利用Angular JS实现项目的国际化以及后续要借助这个框架来实现其他功能,好吧我表示没怎 ...

  9. 关于SubSonic3.0插件使用SubSonic.Query.Select查询时,字段类型为tinyint时列丢失问题的Bug修复

    下午在写代码时,突然发现一个列名为Enable的字段怎么也查询不出来,开始以为可能这个名称是关键字,所以给过滤掉了,所以就将名称修改为IsEnable,问题还是一样......将名称又改为IsEnab ...

  10. ES6 - Note2:解构赋值

    ES6的解构赋值就是利用模式匹配从按照一定模式的数组或者对象中提取值赋值给变量. 1.数组的解构赋值 在ES6以前,变量的赋值是直接指定的,以后可以这么来写,如下所示 let [a,b,c] = [1 ...