AMD CMD UMD CommonJs ESM 的历史和区别

这几个东西都是用于定义模块规范的。有些资料会提及到这些概念,不理清楚非常容易困惑。

ESM(ES Module)

这个实际上我们是最熟悉的,就是ES6的模块功能。出的最晚,因为是官方出品,所以大势所趋,一统江湖指日可待。

CommonJs (nodejs)

这个也非常熟悉。其代表为nodejs,在浏览器环境中无效,需通过babel转码支持。

AMD(asynchronous module definition)

AMD 是 Asynchronous Module Definition 的缩写,即异步模块定义。它是由 RequireJS 的作者 James Burke 提出的一种模块化规范。
这个库有12.9k的start。在ESM出来后,估计这个库估计不会有新用户了。
在这里插入图片描述

CMD(Common Module Definition)

CMD(Common Module Definition)是一种JavaScript模块定义规范,主要被用在浏览器端,旨在解决前端模块化开发的需求。这个规范由阿里巴巴的玉伯(尤雨溪)提出,Sea.js 是该规范的主要实现者。
sea.js在github上已经找不到了。而且这个是尤雨溪在阿里巴巴工作的时候做的,可以理解为阿里的KPI工程,虽然是尤雨溪出品,但沾上阿里就根据不靠谱。

UMD(Universal Module Definition)

一套兼容CommonJS、AMD、CMD的方案。还是计较厉害的。但ESM出来后,这个意义也不是很大。

总结

在ESM出来之前,js是没有官方模块规范的。CommonJS凭借nodejs的知名度肯定是名气最大的。AMD CMD虽然都是大佬出的,但规范没法统一,这时候UMD出来解决了CommonJS、AMD、CMD的兼容统一问题。但ESM出来之后,这一切都将变成历史。总之,新代码用ESM就对了。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值