Web 开发越来越复杂,需要一个团队分工协作、进度管理、单元测试、持续集成、持续部署...... 社区也开发了很多工具来协助构建这些规模庞大的应用。诸多工具中最核心的非模块系统莫属,在这样一个系统中,你可以通过多个文件和目录来组织你的项目,最重要的是,所有代码都可以按需彼此访问并高效加载。所以JavaScript就这么顺理成章地有了几个知名的模块系统。当然,随之而来的还有几个包管理器,可以用它们安装所有软件以及处理高层次的依赖。如此一来,模块化开发就显得非常重要了,所以本节主要聊一聊JavaScript的模块化开发之CommonJS规范。
Web
开发越来越复杂,需要一个团队分工协作、进度管理、单元测试、持续集成、持续部署...... 社区也开发了很多工具来协助构建这些规模庞大的应用。诸多工具中最核心的非模块系统莫属,在这样一个系统中,你可以通过多个文件和目录来组织你的项目,最重要的是,所有代码都可以按需彼此访问并高效加载。所以JavaScript
就这么顺理成章地有了几个知名的模块系统。当然,随之而来的还有几个包管理器,可以用它们安装所有软件以及处理高层次的依赖。如此一来,模块化开发就显得非常重要了,所以本节主要聊一聊JavaScript
的模块化开发之CommonJS
规范。理想状态下,
Developer
只需要实现核心的业务逻辑,其他的可以加载别人已经写好的模块即可,因此JavaScript
语言的模块化编程就显得异常重要了。然而,ES6
之前JavaScript
没有为组织管理代码提供任何方案,这对开发大型的、复杂的项目形成了巨大障碍。.模块化管理需要具备:
要通用,则必须要有规范化,因此一系列的标准应运而生。
CommonJS模块规范
CommonJS规范历史:
随着JavaScript作为后端语言的发展,CommonJS规范应运而生。参考 CommonJS规范, 需要注意的是CommonJS通常是服务器端模块的规范,Node.js采用了这个规范。Node.JS首先采用了js模块化的概念。
CommonJS规范要点
CommonJS的特点
Reference