ES Module 学习
2025-07-04
8 min read
发展历史
- 无模块时期
仅浏览器使用 js,通过<script>
标签的先后顺序在设置 global scope 的模块引用。amd/seajs 等现已不用,忽略 - Commonjs 时期
Nodejs 为了模块化发明了一种模块加载方式,同步加载,require 后立即执行 - ES Module 时期
ES5 开始 js 引入了模块标准,同时还能解决前端对于 treeshaking/编译时就能分析依赖结构等需求,异步加载,因此可以支持 top-level await
主要疑问
1. .mjs/.cjs/type:module 都是什么
ECMAScript 没有规定文件名规范,是**“Host Environment宿主环境”**决定了规范。