按规范分类
前端模块加载方案主要可以分为以下几种:
- CommonJS规范:这是Node.js的模块规范,每个文件都被视为一个模块,模块内部定义的变量、函数、类等都是私有的,对外暴露API通过
module.exports
或exports
。在浏览器端,可以通过Browserify等工具将CommonJS模块转换为浏览器可识别的格式。 - AMD规范:Asynchronous Module Definition的缩写,即异步模块定义。AMD规范是RequireJS在推广过程中对模块定义的规范化产出。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。
- ES6模块:ES6原生支持模块的导入(import)和导出(export),而且其是静态的,有利于编译时优化。与CommonJS和AMD相比,ES6模块不会加载整个文件,而是通过静态分析,只加载需要的代码部分。
- UMD规范:Universal Module Definition的缩写,即通用模块定义。UMD是AMD和CommonJS的糅合,希望同时兼容两种模块加载方式。
About 15 min