Skip to content
On this page

什么是模块化

百科:模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性。 Wiki:模块化编程(modular programming),是强调将计算机程序的功能分离成独立的、可相互改变的“模块”(module)的软件设计技术,它使得每个模块都包含着执行预期功能的一个唯一方面(aspect)所必需的所有东西。

前端模块化有很多方案

  1. CommonJS:是 Nodejs 使用的一套模块化规范,是一种同步加载模块依赖的方式;通过 require 及 exports 进行导入导出 (再进一步扩展,module.exports 属于 commonjs2 )
  • require :引入一个模块
  • exports :导出模块内容
  • module :模块本身
  1. AMD:是 js 模块加载库 RequireJS 提出并且完善的一套模块化规范,AMD 是一个异步加载模块依赖的方式;
  • id:模块的 id
  • dependencies:模块依赖
  • factory:模块的工厂函数,即模块的初始化操作函数
  • require:引入模块
  1. ESM (ES6 Module):ES6 推出的一套模块化规范。
  • import:引入模块依赖
  • export:模块导出

除了上面三大主流规范,还有 CMD(国产库 SeaJS 提出来的一套模块规范)和 UMD(兼容 CommonJS 和 AMD 一套规范)。目前多数模块的封装,是既可以在 Node.js 环境又可以在浏览器环境运行, 那么一般会采用 UMD 的规范。 UMD:都可兼容 CommonJS 与 AMD 的模块,既可以在 NodejsWebpack 环境中被 require 引用,又能在 browser 环境中直接用 CDN 被 script 标签引入。

cjs, umd, esm or iife? - 知乎 (zhihu.com)

Released under the MIT License.