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。敬请期待……
地址
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发布相关推荐
- AMD and CMD are dead之KMD.js依赖可视化工具发布
使用 require("MyAapp.DepTree", function (DepTree) {DepTree(({renderTo: "holder",wi ...
- AMD and CMD are dead之js模块化黑魔法
缘由 在2013-03-06 13:58的时候,曾甩下一片文章叫:<为什么不使用requirejs和seajs>,并放下豪言说发布一款完美的模块化库,再后来就把那篇文章删了,再然后就没有然 ...
- Requirejs与r.js打包,AMD、CMD、UMD、CommonJS、ES6模块化
一:require.js 1.require.js是什么?为什么要用它? require.js是一个JavaScript模块载入框架,实现的是AMD规范.使用require.js有以下优点: ① 异步 ...
- 浅析JS模块规范:AMD,CMD,CommonJS
from:https://www.jianshu.com/p/09ffac7a3b2c 随着JS模块化编程的发展,处理模块之间的依赖关系成为了维护的关键. 模块化 AMD,CMD,CommonJS是目 ...
- JavaScript进阶(十二)JS 模块化编程规范-CommonJS、AMD、CMD、ES6
文章目录 一.前言 二.AMD-异步模块定义 三.CMD-同步模块定义 四.CommonJS 规范 五.ES6 六.拓展阅读 一.前言 AMD.CMD.CommonJs是ES5中提供的模块化编程方案, ...
- 再谈 JS中的模块规范(CommonJS,AMD,CMD)来自玉伯的seajs分析
随着互联网的飞速发展,前端开发越来越复杂.本文将从实际项目中遇到的问题出发,讲述模块化能解决哪些问题,以及如何使用 Sea.js 进行前端的模块化开发. 恼人的命名冲突 我们从一个简单的习惯出发.我做 ...
- 【JS】AMD,CMD,CommenJS和ES6
本节我们来对比一下AMD,CMD,CommenJS和ES6 首先说一下什么是AMD,CMD和CommenJS. 其实这三个都是一种规范或者说标准.AMD是国外一个团队搞出来的异步模块定义,CMD是国内 ...
- 前端模块化CommonJS、AMD、CMD、ES6
一.前端模块化 什么是模块化?为什么前端需要模块化? js代码量激增,放在同一个文件里面,不容易维护,而且牵一发而动全身. 这时候就需要将代码按照逻辑放在不同的文件里面,按照一定的语法规则,遵循特定的 ...
- JavaScript模块化 --- Commonjs、AMD、CMD、es6 modules
随着前端js代码复杂度的提高,JavaScript模块化这个概念便被提出来,前端社区也不断地实现前端模块化,直到es6对其进行了规范,下面就介绍JavaScript模块化. 这篇文章还是希望能给大家一 ...
最新文章
- 软件工程编码阶段_软件工程的编码阶段
- MySQL破log_MySQL中的binlog相关命令和恢复技巧
- UGUI ScrollRect 滑动
- vb教材笔记_vb学习笔记
- 论软件产品的易用性(一)
- comsol和java_COMSOL java API——编译comsol模型java文件
- 三角测量计算三维坐标的代码_室内定位系统的三边测量与三角测量
- 51单片机学习入门(三):串口
- 常用的mysql函数及在TP中使用示例
- Kali Linux Web 渗透测试秘籍 第七章 高级利用
- Android 仿微信短视频录制
- 零基础入门金融风控之贷款违约预测—特征工程
- MindSpore【数据集功能】无法查看数据集
- vue config.js详解——vue config.js到底是什么,有什么作用?
- 云服务器如何修改操作系统,云服务器如何修改操作系统
- 突破技术限制,实现Web端静默打印
- STM32项目设计:基于STM32的风向风速测量仪
- 如何用AML中的Designer创建一个AML pipeline来处理数据
- 会写Python代码的人工智能Kite宣布支持Linux,“程序猿”要失业了?
- 南京邮电大学2013年硕士研究生招生复试及同等学力加试参考书目
热门文章
- 1.多线程-NSThread
- thinkphp的控制器包含在Url中时注意区分大小写
- C#多线程中lock的用法
- mysql 并行复制搭建_基于GTID的主从实践系列之④并行复制搭建及测试
- OVS bridge和port(三十三)
- leetcode算法题--逆波兰表达式求值
- ssms没有弹出服务器验证_Nginx服务器负载均衡及生成ssl密钥对、Nginx配置ssl操作示例...
- 鸿蒙2.0操作体验,鸿蒙2.0操作系统正式版-华为鸿蒙2.0操作系统正式版官方预约 v1.0.0-优盘手机站...
- oracle自动售票服务器,一种基于Oracle数据库客户端的业务自动处理方法与流程
- C++:位操作基础篇之位操作全面总结