怎么做淘宝网站教程,网站建设存在的问题,餐饮外哪个网站做推广,网站 正在建设中这几个东西都是用于定义模块规范的。有些资料会提及到这些概念#xff0c;不理清楚非常容易困惑。
ESM#xff08;ES Module#xff09;
这个实际上我们是最熟悉的#xff0c;就是ES6的模块功能。出的最晚#xff0c;因为是官方出品#xff0c;所以大势所趋#xff0c…这几个东西都是用于定义模块规范的。有些资料会提及到这些概念不理清楚非常容易困惑。
ESMES Module
这个实际上我们是最熟悉的就是ES6的模块功能。出的最晚因为是官方出品所以大势所趋一统江湖指日可待。
CommonJs (nodejs)
这个也非常熟悉。其代表为nodejs在浏览器环境中无效需通过babel转码支持。
AMDasynchronous module definition
AMD 是 Asynchronous Module Definition 的缩写,即异步模块定义。它是由 RequireJS 的作者 James Burke 提出的一种模块化规范。 这个库有12.9k的start。在ESM出来后估计这个库估计不会有新用户了。
CMDCommon Module Definition
CMDCommon Module Definition是一种JavaScript模块定义规范主要被用在浏览器端旨在解决前端模块化开发的需求。这个规范由阿里巴巴的玉伯尤雨溪提出Sea.js 是该规范的主要实现者。 sea.js在github上已经找不到了。而且这个是尤雨溪在阿里巴巴工作的时候做的可以理解为阿里的KPI工程虽然是尤雨溪出品但沾上阿里就根据不靠谱。
UMDUniversal Module Definition
一套兼容CommonJS、AMD、CMD的方案。还是计较厉害的。但ESM出来后这个意义也不是很大。
总结
在ESM出来之前js是没有官方模块规范的。CommonJS凭借nodejs的知名度肯定是名气最大的。AMD CMD虽然都是大佬出的但规范没法统一这时候UMD出来解决了CommonJS、AMD、CMD的兼容统一问题。但ESM出来之后这一切都将变成历史。总之新代码用ESM就对了。