模块化
定义
- 在node中的顶层对象不是window,默认没有window这个对象; Nodo中全局对象为global,模块顶级对象为module
- 一个文件就是一个独立的模块; 每一个模块都有自己的独立作用域
- 每个独立的模块都有一个内置的对象module;这个对象存储和提供与当前模块有关的一些信息;该对象在使用的时候可以省略
- 模块的加载通过一个模块内置的方法来实现的—— require()
- 每个模块对象(module)有一个属性exports,默认是一个空对象;该对象就是导出对象,可以把一个模块中的局部变量等数据,挂载到该对象下require方法返回的值就是被加载的模块的exports对象
__dirname // 当前模块所在的绝对目录
__filename // 当前模块所在的绝对目录及文件名称
- 模块也可以通过一个目录的形式来组织
- 默认情况下会加载目录模块下的index.js,作为目录模块的入口
- 模块说明文件 package.json:
模块分类
- 基于文件的单文件模块(File Modules
- 模块加载路径以/、./、../开头
- 基于文件夹的模块
- 普通目录模块
- 模块加载路径以/、./、../开头
- node_modules目录模块
- 模块加载路径不以/、./、../开头
- 普通目录模块
- package.json
- name——模块名称
- version——模块版本
- main——模块入口文件
node中为我们约定了一个特殊的目录node_modules目录,该目录下存放的是一些第三方的模块