# 模块化
模块化就是将复杂的系统分解成多个独立模块的代码组织方式,它大大提高了项目的可维护性、可拓展和可协作性
通常,我们在 浏览器中使用 ES6 的模块化支持,在 Node 中使用 CommonJS 的模块化支持,但是为了前端生态,会使用打包工具统一打包成 CommonJS 的模块
# 分类
- esm:
import / export
- cjs:
require / module.exports / exports
- amd:
require / defined
# require 和 import 的区别
require 支持 动态导入,import 不支持,正在提案(babel 下可使用)
require 是 同步 导入,import 属于 异步 导入
require 是 值拷贝,导出值变化不会影响导入值;import 指向 内存地址,导入值会随导出值变化而变化