目前前端主要的模块化方案有如下几种:
- 使用
<script>
标签直接引入,这种是最原始的做法,缺点是需要自己管理模块之间的依赖关系和加载顺序,并且有可能出现全局变量的冲突。 - CommonJS,
NodeJS
中的方案,通过require
引入,通过exports
来导出,可以重用很多npm中的模块,生态比较强大,缺点是只能同步请求,无法异步加载,没有办法并发下载依赖。 - AMD,使用
require
和define
,来依赖和定义模块,解决了CommonJS的问题,但是编码复杂,实现方案多。 - ES6,通过
import
,export
来依赖和定义模块,容易做静态分析,未来的标准,浏览器支持需要时间。
参考资料: