前端模块化规范
-
amd和cmd规范:用define字段来定义文件的依赖关系 -
commonjs规范:基于文件读写,如果依赖了某个文件会进行文件读取,是动态(执行后才知道结果,不可以tree-shaking)的(不必须写在顶层作用域中)
- 一个文件一个模块
- require导入
- module.exports导出
esModule规范:每次引用一个模块就会发请求,静态(可以tree-shaking)的,只能在顶层作用域中引用一个模块(es7新增的import("xxx")也能实现动态导入)
- 一个文件一个模块
- export导出
- import 导入
umd规范:兼容amd、cmd和commonjs,但不支持esModule