首页 > 其他分享 >多种模块格式,包括 ES, CommonJS, UMD, AMD, SystemJS 和 IIFE的区别点分别是什么

多种模块格式,包括 ES, CommonJS, UMD, AMD, SystemJS 和 IIFE的区别点分别是什么

时间:2024-07-17 15:07:30浏览次数:8  
标签:CommonJS 浏览器 AMD IIFE 模块 格式

【转】https://zhuanlan.zhihu.com/p/668530823

以下是各种模块格式的主要特点:

ES Modules (ESM):这是 ECMAScript 6 (ES6) 引入的官方标准格式。它支持导入和导出语句,以及静态分析和 tree-shaking。它是唯一的静态模块系统,意味着你可以在编译时确定导入和导出的内容。

CommonJS (CJS):这是 Node.js 使用的模块系统。它使用 require() 来导入模块,module.exports 或 exports 来导出。它是动态的,可以在运行时加载模块,但不支持 tree-shaking。

UMD (Universal Module Definition):这种格式旨在兼容 AMD 和 CommonJS,同时还能在全局变量中运行。它通常用于让库能在各种环境中运行,包括浏览器和 Node.js。

AMD (Asynchronous Module Definition):这种格式主要用于浏览器,支持异步加载和依赖管理。它使用 define() 函数来定义模块。

SystemJS:这是一个动态模块加载器,可以在浏览器中加载各种模块格式,包括 ES6、AMD、CommonJS 和全局脚本。

IIFE (Immediately Invoked Function Expression):这不是一个模块格式,而是一种 JavaScript 函数的执行方式。它创建一个立即执行的函数,通常用于避免全局作用域的污染。在打包工具中,IIFE 格式通常用于生成一个可以直接在浏览器中运行的自包含脚本。

每种模块格式都有其适用的场景,选择哪种格式取决于你的项目需求和目标环境。

标签:CommonJS,浏览器,AMD,IIFE,模块,格式
From: https://www.cnblogs.com/guxingzhe/p/18307435

相关文章

  • 安装软件Docker Desktop Installer.exe后导致的AMD显卡掉驱动,提示:The version of AMD
    打开AMDRadeonSoftware时总是弹出“TheversionofAMDRadeonSoftwareyouhavelaunchedisnotcompatiblewithyourcurrentlyinstalledAMDgraphicsdriver."提示框,如图所示:TheversionofAMDRadeonSoftwareyouhavelaunchedisnotcompatiblewithyourcurr......
  • Windows Defender Credential Guard (WDC) 旨在保护操作系统中的凭据免受攻击和恶意
    WindowsDefenderCredentialGuard(WDC)是一种Windows10和WindowsServer2016及更高版本中引入的安全功能,旨在保护操作系统中的凭据免受攻击和恶意软件的威胁。它通过使用硬件虚拟化技术(如IntelVT-x和AMD-V)来隔离和保护用户的敏感信息,例如NTLM口令、KerberosTicketGrant......
  • ESM(ESModule)和CJS(CommonJS)的区别
    ESM和CJS的区别1.CJS2.EMS3ESM与CJS的区别3.1ESM输出的是==值的引用==,CJS输出的是==值得拷贝==3.2CJS的输出是运行时加载,而ESM是编译时输出接口3.3CJS是同步加载,ESM是异步加载1.CJSNode.js模块加载规范.js或.cjs文件,使用require加载,module.exports/exports......
  • AMD R2000 Bilby 单板 Inside BIOS 串口重定向的使用
    AMD嵌入式X86处理器的R2000系列使用Bilby开发板。开发板使用InsideBIOS。......
  • 为Ubuntu-24.04-live-server-amd64磁盘扩容
    系列文章目录Ubuntu-24.04-live-server-amd64安装界面中文版文章目录系列文章目录前言一、检查系统本身情况1.用lsblk命令查看自己系统磁盘是什么状态2.用df-h命令查看文件系统的磁盘空间使用情况3.解决Ubuntu-24.04磁盘空间只能用一半的问题3-1扩展逻辑卷:3-2.......
  • Vite 打包如何允许存在commonjs
    首先安装依赖:npminstall@rollup/plugin-commonjs如图所示,添加plugin插件 示例代码:import{resolve}from'path';import{defineConfig}from'vite';importvuefrom'@vitejs/plugin-vue';importvueJsxfrom'@vitejs/plugin-vue-jsx&......
  • AMD MPSoC PS PCIe作为EP与Host在异常状态下的工作情况
    正常情况下,PCIeEP和Host同时启动,Host给EP提供参考时钟,双方协商后建立PCIe链路。客户希望测试PCIeHost异常情况下,AMDMPSoCPSPCIe作为EP,是否能独立工作;是否能在Host恢复正常后,建立PCIe链路,正常传输数据。使用了ZCU112单板作为PCIeEP,和X86主机作为PCIeHost测试。结果如下:......
  • lamdba神秘之解
    一、前言二、lambda语法三、lambda特性四、lambda常见用法五、lambda用法之高阶函数一、前言lambda函数在Python编程语言中使用频率非常高,使用起来非常灵活、巧妙;那么,什么是lambda?它有哪些用法和应用场景呢?下面让我一起来解读lambda的神秘之处!好文章记得收藏+点赞+......
  • 在AMD GPUs上构建解码器Transformer模型
    BuildingadecodertransformermodelonAMDGPU(s)—ROCmBlogs在这篇博客中,我们展示了如何使用PyTorch2.0和ROCm在单个节点上的单个和多个AMDGPU上运行AndrejKarpathy精美的PyTorch重新实现的GPT。我们使用莎士比亚的作品来训练我们的模型,然后进行推理,看看我们的模......