0%

模块与npm包管理工具

核心模块与文件模块

  • 模块文件支持类型:
    1. 后缀名为.js的脚本文件
    2. 后缀名为.json的JSO文本文件
    3. 后缀名为.node的经过编译后的二进制模块文件

组织与管理模块

  • 在不指定路径时,node.js会去node_modules目录下寻找
  • 可以在node_modules目录下创建入口文件index.js,node.js会自动加载index.js,或者在node_modules下foo子目录下创建package.json文件
    1
    2
    3
    4
    {
    "name": "foo",
    "main": "./lib/foo.js"
    }
  • 操作系统环境变量NODE_PATH,当require只提供了文件名,并且在项目内node_mdoules下没找到的话,回去系统环境变量指定的路径下去寻找

模块对象的属性

  • module.id:当前模块ID
  • module.loaded:模块加载状态
  • module.parent:当前模块的父模块对象,即调用当前模块的模块对象
  • module.children:存放当前模块的所有子模块对象

包与npm包管理工具

  • 包是一个目录,包含了描述包的JSON文件package.json
  • 包中有如下内容:
    1. 在包的根目录中存放package.json文件
    2. 在bin子目录中存放二进制文件
    3. 在lib子目录中存放JavaScript文件
    4. 在doc子目录存放对包或包的使用方法进行说明的文档文件
    5. 在test子目录中存放单元测试文件
  • package.json文件
    1. name,包名,唯一的
    2. preferglobal,是否支持全局安装
    3. description,包说明
    4. version,版本号
    5. author,作者信息数组
    6. licenses,许可证数组
    7. keywords,关键字数组
    8. dependencies,依赖