Node 封装模块

概述

Node.js 框架的最强大功能之一是能够轻松使用 NPM(Node 包管理器)安装各种各样的 Node 封装模块(Node Packaged Module)。

所谓的“Node 封装模块”,其实就是一个按照 Node.js 规定打包的 JavaScript 库。这样就可以很容易地在不同的项目中被分享、重用和安装。Node 封装模块由许多不同的第三方机构创建,Node.js 社区每天都有许多模块被新增或更新,为 Node.js 框架提供了各式各样的功能。

Node 模块组成

每个 Node 封装模块都包括一个 package.json 文件,它包含了 Node 模块的元数据信息,如名称、版本、作者和贡献者,以及控制元数据,比如依赖和当执行诸如安装与发布动作时,Node 包管理器将使用的其他要求。

package.json 文件

所有 Node 模块必须在其根目录中包含一个 package.json 文件,是用于定义模块及其依赖关系的一个简单的 JSON 文本文件。该文件可以包含多个不同的指令来告诉 Node 包管理器如何处理模块。

下面是一个包含名称、版本、描述和依赖关系的 package.json 文件的例子:

{
    "name": "my_module",
    "version": "0.1.0",
    "description": "a simple node.js module",
    "dependencies": {
        "express": "latest"
    }
}

其中,必需的指令只有名称(name)和版本(version),其余可以按需添加。如果执行 npm install 命令没有指定模块,那么 npm 会查找 package.json 文件,根据依赖关系安装模块。

下面是 package.json 文件中各指令的说明和示例。

name 是包的唯一名字,例如:

"name": "getiot"

preferGlobal 表示该模块更倾向于在全局范围内安装,例如:

"preperGlobal": true

version 是该模块的版本,例如:

"version": 0.0.1

author 是项目的作者,例如:

"author": "rudy@getiot.tech"

description 是模块的文字说明,例如:

"description": "a peace planet"

contributors 是模块的其他贡献者,例如:

"contributors": [{
    "name": "tina",
    "email": "tina@getiot.tech"
}]

bin 表示随项目安装的二进制文件,例如:

"bin": {
    "excalibur": "./bin/flower"
}

scripts 表示启动 Node 时执行的控制台应用程序的参数,例如:

"scripts": {
    "start": "node ./bin/flower",
    "test": "echo testing"
}

main 表示应用程序的主入口点,它可以是一个二进制或 .js 文件,例如:

"main": "./bin/flower"

repository 表示存储库类型和包的位置,例如:

"repository": {
    "type": "git",
    "location": "https://github.com/getiot/xxx.git"
}

keywords 表示出现在 npm search 中的关键词,例如:

"keywords": [ "iot", "sensor" ]

dependencies 表示此模块依赖的模块和版本,可以使用 *x 通配符,例如:

"dependencies": {
    "express": "latest",
    "connect": "2.x.x",
    "cookies": "*"
}

engines 表示此包可使用的 Node 版本,例如:

"engines": {
    "node": ">=0.6"
}

Leave a Reply