~ Node.js 模块化
Node 模块化的相关规则:
- 如何定义模块:一个 js 文件就是一个模块,模块内的成员是相互独立的;
- 模块成员的引入和导出 — Node 中,模块的加载机制被称为 CommonJS 规范。
模块化,是指解决一个复杂问题时,自上而下逐层把系统分成若干模块的过程。
对于整个系统来说, 模块是可组合、分解及更换的单元。
在程序开发过程中,随着代码越写越多,单个文件中的代码会越来越长,维护就变得越来越复杂。
为了编写可维护的代码,我们把很多函数分组,分别放在不同的文件中,
这样,每个文件包含的代码就相对较少,很多编程语言都采用这种代码组织方式。
编程领域中的模块化,简单来说就是,遵循一定的规则,把一个大文件拆分成独立且相互依赖的多个小文件。
而,对代码进行模块化拆分与组合时,需要遵循的那些规则,称之为模块化规范。
在 Node.js 中,一个 .js 文件,就称之为一个模块( module )。
使用模块化有什么好处呢 ? // 传统的非模块化开发的缺点:命名冲突、文件依赖
- 最大的好处是大大提高了代码的可维护性。
- 其次,编写代码不必从零开始,当一个模块编写完毕,就可以在其他地方被引用( 我们在编写程序的时候,也经常引用其他模块,包括 Node.js 中内置模块和第三方的自定义模块 )。
- 使用模块,还可以避免命名冲突,相同名字的函数和变量可以分别存在不同的模块中,简单来说就是,不同模块内部各自使用的变量名和函数名互不冲突。
Node.js 中,模块可以分为:
- 内置模块:Node.js 官方提供的,在 Node.js 源代码的编译过程中,编译进了二进制执行文件
在 Node.js 进程启动时,部分核心模块就被直接加载进内存中,即内置模块。
内置模块引入时,文件定位和编译执行这两个步骤可以省略掉,并且在路径分析中优先判断
- 文件模块:在运行时动态加载,需要完整的路径分析、文件定位、编译执行过程,速度比内置模块慢
- 自定义模块:用户自己编写的模块,模块内部的成员是相互独立的 — 模块作用域
- 第三方模块( 包 ):第三方开发的模块,使用前需要进行下载