felix-cao / Blog

A little progress a day makes you a big success!
31 stars 4 forks source link

CommonJS 模块规范 #51

Open felix-cao opened 6 years ago

felix-cao commented 6 years ago

Web 开发越来越复杂,需要一个团队分工协作、进度管理、单元测试、持续集成、持续部署...... 社区也开发了很多工具来协助构建这些规模庞大的应用。诸多工具中最核心的非模块系统莫属,在这样一个系统中,你可以通过多个文件和目录来组织你的项目,最重要的是,所有代码都可以按需彼此访问并高效加载。所以JavaScript就这么顺理成章地有了几个知名的模块系统。当然,随之而来的还有几个包管理器,可以用它们安装所有软件以及处理高层次的依赖。如此一来,模块化开发就显得非常重要了,所以本节主要聊一聊JavaScript的模块化开发之CommonJS规范。

理想状态下,Developer只需要实现核心的业务逻辑,其他的可以加载别人已经写好的模块即可,因此JavaScript语言的模块化编程就显得异常重要了。然而,ES6之前JavaScript没有为组织管理代码提供任何方案,这对开发大型的、复杂的项目形成了巨大障碍。.

模块化管理需要具备:

要通用,则必须要有规范化,因此一系列的标准应运而生。

CommonJS模块规范

  CommonJS规范历史:

  随着JavaScript作为后端语言的发展,CommonJS规范应运而生。参考 CommonJS规范, 需要注意的是CommonJS通常是服务器端模块的规范,Node.js采用了这个规范。Node.JS首先采用了js模块化的概念。

  CommonJS规范要点

  CommonJS的特点

Reference