Node 中的模块化(1) -- CommonJS 规范
一、为什么需要模块化
因为 js 没有命名空间的概念,
所以在项目、代码越来越复杂的情况下,js 代码和 js 文件越来越多,并且每个脚本之间有复杂的依赖关系的时候,
就容易产生命名冲突、方法覆盖、文件依赖等等问题
为了解决这个问题了,开始提倡模块化开发,并且出现了很多的模块化规范,
比较出名的有 AMD、CMD、CommonJS 这三大模块化规范
而 Nodejs 就遵循了 CommonJS 规范。
二、CommonJS 是什么东西
CommonJS 是为了实现 JavaScript 模块化而制定的一套模块化规范
三、CommonJS 规范是如何定义的
每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、方法,都是私有的,对其他文件不可见。
如果需要把当前模块中的一些私有成员,暴露给其他模块来进行使用,必须使用 exports 这个对象
如果当前的模块需要使用另一个模块中的私有成员,必须使用 require 这个函数
在每个模块内部,都有一个 module 对象,代表当前模块
使用原则:
如果导出单一成员,例如变量、方法可以使用 exports 进行导出
如果导出多个成员,例如类、构造函数,可以使用 module.exports 进行导出
三、模块了带来的好处(js 为什么需要模块化)
1. 解决命名冲突、文件依赖
2. 让代码实现高度的复用
3. 提高了代码的可维护性以及阅读性
课外阅读