Node.js中的模块分类
-
Node.js中根据模块来源的不同,将模块分为了3大类,分别是:
(1)内置模块:由Node.js官方提供,例如fs、path、http等;
(2)自定义模块:用户创建的每个.js文件,都是自定义模块;
(3)第三方模块:由第三方开发出来的模块,使用前需要先下载。 -
使用require()方法加载其它模块时,会执行被加载模块中的代码。
-
模块作用域:防止全局变量污染的问题。
-
在每个.js自定义模块中都有一个module对象。
-
在自定义模块中,可以使用module.exports对象,将模块内的成员共享出去,供外界使用。
-
外界用require()方法导入自定义模块时,得到的就是module.exports所指向的对象。
Node.js中的模块化规范(commonJS)
- 每个模块内部,module变量代表当前模块;
- module变量是一个对象,它1的exports属性(即module.exports)是对外的接口;
- 加载某个模块,其实是加载该模块的module.exports属性。
包
- Node.js中的第三方模块又叫做包;
- 包是由第三方个人或团队开发出来的;
- 包是基于内置模块封装出来的,提供了更高级、更方便的API,极大的提高了开发效率;
- 包和内置模块之间的关系,类似于jQuery和浏览器内置API之间的关系;
- jQuery是将浏览器内置的api进行了封装;
npm, Inc
公司提供了一个包管理工具,我们可以使用这个包管理工具,从 https://registry.npmjs.org 服务器把需要的包下载到本地使用;- node_modules文件夹用来存放所有已安装到项目中的包。require()导入第三方包时,就是从这个目录中查找并加载包;
- pakage-lock.json配置文件用来记录node_modules目录下的每一个包的下载信息,例如包的名字、版本号、下载地址等;
- npm包管理工具提供了一个快捷命令,可以在执行命令时所处的目录中,快速创建pakage.json这个包管理配置文件:npm init -y;
- 使用npm包管理工具下载的包,共分为两大类,分别是:1.项目包 2.全局包;
- 项目包又分为两类,分别是
(1)开发依赖包:被记录到devDependencies节点中的包,只在开发期间会用到;
(2)核心依赖包:被记录到dependencies节点中的包,在开发期间和项目上线之后都会用到。 - 全局包会被安装到
C:\Users\admin\AppData\Roaming\npm\node_modules
目录下。
规范的包结构
-
一个规范的包,它的组成结构,必须符合以下三点要求:
(1)包必须以单独的目录而存在;
(2)包的顶级目录下要必须包含package.json这个包管理配置文件;
(3)package.json中必须包含name,version,main这三个属性; -
main属性是包的入口文件,我们使用require()时,内部原理从这里引入包。