更新

正式从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躺在血泊里。

转载于:https://www.cnblogs.com/iamzhanglei/p/3813645.html

AMD and CMD are dead之KMD.js版本0.0.2发布相关推荐

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

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

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

    缘由 在2013-03-06 13:58的时候,曾甩下一片文章叫:<为什么不使用requirejs和seajs>,并放下豪言说发布一款完美的模块化库,再后来就把那篇文章删了,再然后就没有然 ...

  3. Requirejs与r.js打包,AMD、CMD、UMD、CommonJS、ES6模块化

    一:require.js 1.require.js是什么?为什么要用它? require.js是一个JavaScript模块载入框架,实现的是AMD规范.使用require.js有以下优点: ① 异步 ...

  4. 浅析JS模块规范:AMD,CMD,CommonJS

    from:https://www.jianshu.com/p/09ffac7a3b2c 随着JS模块化编程的发展,处理模块之间的依赖关系成为了维护的关键. 模块化 AMD,CMD,CommonJS是目 ...

  5. JavaScript进阶(十二)JS 模块化编程规范-CommonJS、AMD、CMD、ES6

    文章目录 一.前言 二.AMD-异步模块定义 三.CMD-同步模块定义 四.CommonJS 规范 五.ES6 六.拓展阅读 一.前言 AMD.CMD.CommonJs是ES5中提供的模块化编程方案, ...

  6. 再谈 JS中的模块规范(CommonJS,AMD,CMD)来自玉伯的seajs分析

    随着互联网的飞速发展,前端开发越来越复杂.本文将从实际项目中遇到的问题出发,讲述模块化能解决哪些问题,以及如何使用 Sea.js 进行前端的模块化开发. 恼人的命名冲突 我们从一个简单的习惯出发.我做 ...

  7. 【JS】AMD,CMD,CommenJS和ES6

    本节我们来对比一下AMD,CMD,CommenJS和ES6 首先说一下什么是AMD,CMD和CommenJS. 其实这三个都是一种规范或者说标准.AMD是国外一个团队搞出来的异步模块定义,CMD是国内 ...

  8. 前端模块化CommonJS、AMD、CMD、ES6

    一.前端模块化 什么是模块化?为什么前端需要模块化? js代码量激增,放在同一个文件里面,不容易维护,而且牵一发而动全身. 这时候就需要将代码按照逻辑放在不同的文件里面,按照一定的语法规则,遵循特定的 ...

  9. JavaScript模块化 --- Commonjs、AMD、CMD、es6 modules

    随着前端js代码复杂度的提高,JavaScript模块化这个概念便被提出来,前端社区也不断地实现前端模块化,直到es6对其进行了规范,下面就介绍JavaScript模块化. 这篇文章还是希望能给大家一 ...

最新文章

  1. 软件工程编码阶段_软件工程的编码阶段
  2. MySQL破log_MySQL中的binlog相关命令和恢复技巧
  3. UGUI ScrollRect 滑动
  4. vb教材笔记_vb学习笔记
  5. 论软件产品的易用性(一)
  6. comsol和java_COMSOL java API——编译comsol模型java文件
  7. 三角测量计算三维坐标的代码_室内定位系统的三边测量与三角测量
  8. 51单片机学习入门(三):串口
  9. 常用的mysql函数及在TP中使用示例
  10. Kali Linux Web 渗透测试秘籍 第七章 高级利用
  11. Android 仿微信短视频录制
  12. 零基础入门金融风控之贷款违约预测—特征工程
  13. MindSpore【数据集功能】无法查看数据集
  14. vue config.js详解——vue config.js到底是什么,有什么作用?
  15. 云服务器如何修改操作系统,云服务器如何修改操作系统
  16. 突破技术限制,实现Web端静默打印
  17. STM32项目设计:基于STM32的风向风速测量仪
  18. 如何用AML中的Designer创建一个AML pipeline来处理数据
  19. 会写Python代码的人工智能Kite宣布支持Linux,“程序猿”要失业了?
  20. 南京邮电大学2013年硕士研究生招生复试及同等学力加试参考书目

热门文章

  1. 1.多线程-NSThread
  2. thinkphp的控制器包含在Url中时注意区分大小写
  3. C#多线程中lock的用法
  4. mysql 并行复制搭建_基于GTID的主从实践系列之④并行复制搭建及测试
  5. OVS bridge和port(三十三)
  6. leetcode算法题--逆波兰表达式求值
  7. ssms没有弹出服务器验证_Nginx服务器负载均衡及生成ssl密钥对、Nginx配置ssl操作示例...
  8. 鸿蒙2.0操作体验,鸿蒙2.0操作系统正式版-华为鸿蒙2.0操作系统正式版官方预约 v1.0.0-优盘手机站...
  9. oracle自动售票服务器,一种基于Oracle数据库客户端的业务自动处理方法与流程
  10. C++:位操作基础篇之位操作全面总结