AMD and CMD are dead之KMD.js版本0.0.2发布
更新
正式从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。敬请期待……
地址
AMD和CMD已死。我不是认真,我只是为了看到AMD和CMD躺在血泊里。
AMD and CMD are dead之KMD.js版本0.0.2发布的更多相关文章
- AMD and CMD are dead之KMD.js之懒
缘由 "懒"在软件设计中,有着重大的意义.最常见的两种"懒",便是: 懒得计算 懒得加载 "懒得计算"常见于服务器端: 比如Multipla ...
- AMD and CMD are dead之KMD.js依赖可视化工具发布
使用 require("MyAapp.DepTree", function (DepTree) { DepTree(({ renderTo: "holder", ...
- AMD and CMD are dead之KMD规范
What's KMD? 乱世出英雄,KMD名字的由来充满了杀气. Kill AMD and CMD KMD为替代混乱的AMD和CMD世界而生,一统天下.或者让这个混乱的世界更加混乱,导致: KMD A ...
- AMD and CMD are dead之JS工程化终极解决方案KMD.js版本0.0.1发布
回顾 经过两天晚上疯狂的开发调试,伴随着大量掉落的头发和酸痛的颈椎,KMD.js赢来了第一个稳定版本.在此期间KMD规范也有所修改和完善. 这两天主要完成的功能有: 按需加载 版本控制 模块管理 便捷 ...
- AMD and CMD are dead之js模块化黑魔法
var define, require, define2, require2; typeof JSON != "object" && (JSON = {}), fu ...
- AMD and CMD are dead之KMDjs在JS工程化的努力
总览 kmdjs发布了最接近最终版本的0.0.4版本https://github.com/kmdjs/kmdjs,你已经完全可以在项目中使用.我已经无法用语言形容其完美程度.借用我发的微博: 模块 ...
- 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内核之依赖分析
有人说js中有三座大三:this.原型链和scope tree,搞懂了他们就算是js成人礼.当然还有其他不同看法的js成人礼,如熟悉js的:OOP.AP.FP.DOP.AOP.当然还听说一种最牛B的j ...
- AMD and CMD are dead之KMDjs内核之分号
在老版本的kmdjs中,强制了分号的要求.但是总感觉不爽,因为在开发Ket - Kmdjs Extension Tools的时候,总需要导入一些开源的库,然后痛苦就来了,总是报错,一查,就是缺少分号! ...
随机推荐
- Sql Server系列:Transact-SQL概述
结构化查询语言(Structure Query Language,SQL)是对数据库进行查询和修改的语言.Transact-SQL是SQL的一种实现形式,它包含了标准的SQL语言部分. 根据完成的具体 ...
- jQuery源码分析系列(39) : 动画队列
data函数在jQuery中只有短短的300行代码,非常不起点 ,剖析源码的时候你会发现jQuery只要在有需要保存数据的地方无时无刻不依赖这个基础设施 动画会调用队列,队列会调用data数据接口还保 ...
- n维数组实现(可变参数表的使用)
首先先介绍一下可变参数表需要用到的宏: 头文件:#include<cstdarg> void va_start( va_list arg_ptr, prev_param ); type v ...
- AngularJS之ng-class(十一)
前言 本节我们来讲讲指令中的ng-class,通过添加ng-class来生成对应的样式,有时候得根据不同的条件来选择对应的样式,本节我们来看看ng-class的灵活性用法. ng-class使用字符串 ...
- MyEclipse的项目中把 java EE 5 Libraries 删掉后怎么重新导入
myeclipse中鼠标右击项目->properties->java Build Path=>Libraries=>Add Library...=>选择MyEclipse ...
- 【记录】Install-Package : “Unity”已拥有为“CommonServiceLocator”定义的依赖项。
在使用 NuGet 安装 Unity 的时候,安装命令:install-package unity. 但是会莫名奇妙的报如下错误: “Unity”已拥有为“CommonServiceLocator”定 ...
- mysql悲观锁总结和实践--转
原文地址:http://chenzhou123520.iteye.com/blog/1860954 最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科): ...
- Easyui datagrid行内【添加】、【编辑】、【上移】、【下移】
前几天项目中遇到一个需求用到了Easyui datagrd行内添加和编辑数据,同时对行内数据上移下移,所以对这几个功能做个总结. 1.首先大概说下这几个功能里用到的主要方法,行内添加数据主要是添加列的 ...
- 【JUC】JDK1.8源码分析之LinkedBlockingQueue(四)
一.前言 分析完了ArrayBlockingQueue后,接着分析LinkedBlockingQueue,与ArrayBlockingQueue不相同,LinkedBlockingQueue底层采用的 ...
- View与Control间的数据交互
View与Control间的数据交互 1.ViewBag.Name ="Name1" 2.ViewData["VD"] = "view data&qu ...