node——module

319 阅读1分钟

模块化

定义

  • 在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目录,该目录下存放的是一些第三方的模块