前端JavaScript – 关于CJS,AMD,UMD,ESM,看这里一次性搞懂

前端JavaScript - 关于CJS,AMD,UMD,ESM,看这里一次性搞懂

看了不少关于这个话题的文章,很多都说不清楚,老是Get不到重点。下面就把他们总结一下,让大家不再疑惑。

开始的时候,JavaScript没有import/export 模块的方法。这是个很大的问题,想想如果现在让你把所有代码写在一个文件里,会是什么情况,你愿意去维护么?

然后一些天才想了不同的方法把模块系统引入了JavaScript。最出名的就是这些,CJS, AMD, UMD, ESM

下面来从这些方面一一介绍他们:语法,目的和基本的行为。

CJS

CJS是CommonJS的缩写。它看起来像下图:

  • 如果你用过Node.js的话,应该很熟悉这种语法,它就是Node.js的模块系统
  • CJS是同步引入模块
  • 你可以从一个文件,或者node_modules引入模块,下面两种都可以
  • 当使用CJS引入,它会给你一个被引入对象的拷贝
  • CJS不被浏览器支持,只能用于后端。如果要在前端使用,必须要先被编译和打包。

AMD

AMD是Asynchronous Module Definition的缩写。示例代码如下:

或者

  • AMD是通过异步的方式引入模块的
  • AMD是为前端设计的
  • AMD 语法不如 CJS 直观

UMD

UMD是Universal Module Definition的缩写,示例代码如下:

  • UMD可以在前端和后端同时工作。(估计这就是Universal的由来吧,通用)
  • UMD更像是一种配置多个模块系统的模式。
  • UMD通常用于打包工具打包后的代码实现,比如Rollup/Webpack之类的

ESM

ESM代表EcmaScript Module。它是JavaScript规范最新提出的模块系统。你肯定见过这种样子的代码:

  • ESM被现代浏览器原生支持
  • 它语法简单(像CJS),并且是异步导入(像AMD),有它俩共同的优点
  • 由于ES6的静态模块结构,它可以做Tree-shakeable。那些打包工具,比如Rollup可以帮你删掉无用代码,这样你就能得到更精简的build,从而提高性能。
  • 它还可以被使用在HTML里,比如下面这样

总结

  • ESM 是最好的模块系统。它语法简单,原生异步并且可以Tree-shakeable
  • UMD 前后端通用,可以作为不支持ESM环境的替代系统。
  • CJS 是同步的,可以在后端使用。
  • AMD 是异步的,可以在前端使用。
郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
用户投稿
上一篇 2022年6月20日 13:24
下一篇 2022年6月20日 13:24

相关推荐

  • 科比19岁女儿遭自称与她生“科比式孩子”男子跟踪骚扰

    极目新闻记者王亮亮黄佳琪 据福克斯新闻网报道,当地时间11月21日,已故篮球巨星科比·布莱恩特的长女娜塔莉亚·布莱恩特21日向法院提交临时限制令,声称这位32岁的前科从十几岁起就骚…

    2022年11月24日
  • 免费清理c盘的软件(清理c盘空间不影响系统)

    电脑用久了慢如龟速,还卡顿,这最大的原因啊就是C盘空间不足造成的。 即使电脑配置再好,或者硬盘再快,如果长时间没有打扫C盘,打开文件或者稳定之类的,都卡得让人头大。 这时候呢不要去…

    2022年11月24日
  • 华为手机怎么扫一扫连接wifi(手机扫一扫在哪里)

    手机浏览器可以用来浏览网页、看新闻、看视频,还能搜索问题,在我们的工作生活中浏览器占据着非常重要的位置。手机浏览器除了这些作用,其实它隐藏着其他功能,比如:扫一扫。扫一扫可不只是用…

    2022年11月24日
  • ipad怎么刷机(ipad怎么刷机重新激活)

    今天小编给各位分享ipad怎么刷机的知识,其中也会对ipad怎么刷机重新激活进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! ipad密码忘了怎么刷机? ip…

    2022年11月24日
  • pdf虚拟打印机(添加pdf虚拟打印机)

    本文主要讲的是pdf虚拟打印机,以及和添加pdf虚拟打印机相关的知识,如果觉得本文对您有所帮助,不要忘了将本文分享给朋友。 pdf虚拟打印机具体是什么功能? 电脑虚拟打印机的功能有…

    2022年11月24日
  • 大疆发布DJI O3 Air Unit图传解决方案 售价1499元

    大疆日前发布了最新的DJI O3 Air Unit 数字图传解决方案,该方案将DJI O3+ 图传与1/1.7 英寸影像传感器相机模块集于一身,具有高画质、低延时、远距离等特点。 …

    2022年11月23日
  • win11怎么退回win10 win11怎么还原到win10

    许多朋友在更新完win11后发现使用起来不方便,而且有不少漏洞和bug,有时候还会出现卡顿,因此想要还原到win10系统,但是不知道是否可以还原,下面就跟着小编一起来操作一下吧。 …

    2022年11月22日
  • 分享2大类微信引流软件(不花钱的微信引流软件都有哪些)

    不花钱的微信引流软件之前介绍了不少节省社群运营精力、提高社群运营效率的方法,今天主要给大家推荐一些简单好用的工具。 大家首先要掌握寻找工具的方法,因为工具可能因为平台封禁等原因不能…

    2022年11月22日
  • 笑死!华人推特员工陪马斯克熬夜加班后光速被裁

    买下推特后,埃隆・马斯克对其进行了大刀阔斧的改革。今日早间,他还发布推文,贴出了他凌晨大约 1 点 30 分在推特旧金山总部与工程师们的合影。他表示刚与推特工程师们审查完代码。正准…

    2022年11月21日
  • ios16.1.1续航怎么样 ios16.1.1耗电信号问题改善了没

    ios系统虽然好用,但是它的续航信号总是被人吐槽,以至于每次系统升级,用户对于信号和续航还要发热问题都非常关心,最新推送的ios 16.1.1怎么样呢,续航、信号及发热改善了吗,别…

    2022年11月21日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息