Skip to content

在最开始,JS 就是浏览器的一个附属产物,用于实现浏览器的一些交互效果。但是随着前端要求的不断增高,让后端程序员去完成前端代码已经不太现实,于是前端被抽离出来,有了专门的前端开发岗位。但是 JS 本身也无法脱离服务器,无法开发大型项目。

后来随着 V 8 引擎出现,JS 的执行速度得到了大幅加强,作为一个解释性语言,其运行速度在某些方面已经足以媲美某些后端语言了,也就让 JS 可以去干更多的事,但新的问题出现了,JS 设计之初就是浏览器的一个附属产物,也就没有一个统一的模块化标准,我们可以直接感受到的就是全局变量污染和依赖管理混乱,也就意味着想要用 JS 开发大型项目是很困难的。但是毕竟应用邻域还是前端开发,项目不会特别大,所以这个问题也就被忽略掉了。

随着 nodejs 的出现,JS 直接被推向后端,现在需要使用 JS 来开发服务端应用,那么模块化就显得尤为重要,几乎是一个必须要解决的问题,于是经过激烈讨论,提出了CommonJs 方案解决了该问题,并且 nodejs 立刻就实现了该标准,至此 nodejs 成为了第一个为 JS 提供模块化的平台。

随着 commonjs 的提出,前端开发人员也想将 commonjs 应用到浏览器环境下,但是遇到了诸多困难,于是就考虑要重新提出一个规范,于是 AMD 标准就被提出了,这个 AMD 标准可以很好地应用于浏览器环境,之后又推出了 CMD 标准又对 AMD 标准做了进一步改进。

随着 AMD 和 CMD 标准的相继提出,ECMA 官方也看到了这份标准,于是到了 ES 6,由 ECMA 官方推出了一种模块化方案,我们称为 ES 6 模块化,这门语言也就有了真正的模块化标准,搭配上 V 8 引擎强大的运行速度,JS 也就有了无穷的潜力。

以笔记为镜,可以知得失