Node.js的包概述
作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs在Node.js语言中,包和模块并没有本质的不同,包是在模块的基础上更深一步的抽象,包将某个独立的功能封装起来,用于发布、更新、依赖管理和进行版本控制。Node.js根据CommonJS规范实现了包机制,开发了npm来解决包的发布和获取需求。
Node.js的包是一个目录,其中包含JSON格式的包说明文件package.json。Node.js的包基本遵循CommonJS规范,因此具备以下特征:
CommonJS规范定义的包特性:
1)顶层目录包含package.json文件;
2)bin目录存放二进制文件;
3)lib目录存放JavaScript文件;
4)doc目录存放文档;
5)test目录存放单元测试。
Node.js的模块与文件是一一对应的,文件不仅可以是JavaScript源码文件或二进制文件,还可以是目录。最简单的包,就是一个目录的模块。
Node.js的包通常是一些模块的集合,在模块的基础上提供了更高层的抽象,相当于提供了一些固定接口的函数库。
通过定制package.json,我们可以创建更复杂、更完善、更符合规范的包用于发布。
Node.js在调用包时,首先会检查包中的package.json文件的main字段,将其作为包的接口模块,如果package.json文件的main字段不存在,那么Node.js会尝试寻找index.js或index.node作为包的接口。
package.json文件是CommonJS规范用于描述包的文件,完全符合规范的package.json文件应该包含以下字段:
1)name:包名。包名是唯一的,由小写字母、数字和下划线组成,不能含空格。
2)description:包说明。对包进行简要描述。
3)version:版本号。满足《语义化版本识别》规范的版本字符串。
4)keywords:关键字数组,通常用于搜索。
5)maintainers:维护者数组。每个元素包含name、email(可选)、web(可选)字段。
6)contributors:贡献者数组。格式与maintainer数组相同。包作者应该是贡献者数组的第一个元素。
7)bugs:提交bug的地址,可以是网址或电邮地址。
8)licenses:许可证数组。每个元素要包含type(许可证名称)和url(链接到许可证文本的地址)字段。
9)repositories:仓库托管地址数组。每个元素要包含type(仓库的类型,如Git)、url(仓库地址)和path(相对于仓库的路径,可选)字段。
10)dependencies:包依赖。是一个关联数组,由包名和版本号组成。
注:《语义化版本识别》规范是国外提出的一套版本命名规范,最初目的是解决各种各样的版本号大小比较的问题,目前被许多包管理系统所采用。
下面是一个完全符合CommonJS规范的package.json例子:
{
"name": "testpackage",
"description": "My package for CommonJS.",
"version": "0.1.0",
"keywords": [
"testpackage",
"liq"
],
"maintainers": [
{
"name": "liq",
"email": "liq@hotmail.com",
}
],
"contributors": [
{
"name": "liq",
"web": "http://blog.csdn.net/chszs"
}
],
"bugs": {
"mail": "liq@hotmail.com",
"web": "http://blog.csdn.net/chszs"
},
"licenses": [
{
"type": "Apache License v2",
"url": "http://www.apache.org/licenses/apache2.html"
}
],
"repositories": [
{
"type": "git",
"url": "http://github.com/chszs/packagetest.git"
}
],
"dependencies": {
"webkit": "1.2",
"ssl": {
"gnutls": ["1.0", "2.0"],
"openssl": "0.9.8"
}
}
}
分享到:
相关推荐
Node.js技术架构概述.pptx
nodejstools, Visual Studio的node.js 工具 用于 Visual Studio的 node.js-工具用于 Visual Studio 2017的Node.js 工具在这里开发和管理。 请访问我们关于 VisualStudio.com 概述和下载链接,并查看关于 /( 旧的
escpos是一个nodejs的window POS机打印程序
2.1node.js 简介 3 2.2MongoDB 介绍 3 2.3koa2 框架 3 3系统分析 4 3.1可行性分析 4 3.1.1技术可行性 4 3.1.2经济可行性 4 3.1.1操作可行性 5 3.2需求分析 5 3.2.1系统总体概述 5 3.2.2系统性能需求 6 3.3数据流程图...
毕业设计的主题是创建一个使用 Node.js 编写的通讯录工具。这个工具可以用于存储、管理和检索联系人信息。以下是一个简单的项目概述,您可以根据自己的需求进行修改和扩展。 1. 项目名称:Node.js 通讯录工具 2. ...
概述: 该资源为Vue.js前端项目部署提供了必备的Node安装包。Node.js是一个基于Chrome V8引擎的JavaScript运行时,广泛用于构建可扩展的网络应用。在Vue.js项目中,Node.js通常用于安装和管理项目依赖,以及运行构建...
## Node.js的快速MySQL驱动程序:mysqljs/mysql ### 概述 mysqljs/mysql 是一个为 Node.js 设计的高效 MySQL 驱动程序。它提供了与 MySQL 数据库交互的简洁接口,支持现代 JavaScript 功能,并且具有出色的性能...
Webster概述Webster是使用Node.js编写的可靠的Web爬网和爬网框架,用于爬网网站并从其页面中提取结构化数据。 Webster概述Webster概述Webster是用Node.js编写的可靠的Web爬行和抓取框架,用于抓取网站并从其页面中...
Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,它允许开发者使用JavaScript编写服务器端和网络应用程序。Node.js的设计目标是提供一种轻量、高效、可扩展的方式来构建网络应用。 Node.js的原理是基于事件...
项目概述:本项目是一个基于Node.js、Koa2和Vue2技术栈实现的动态数据大屏展示系统。主要采用JavaScript编程语言,结合Vue.js框架,以及CSS和HTML进行页面布局与样式设计。 技术构成: - JavaScript:核心逻辑处理 ...
neunode, neu.Node 兼容 node.js 设备的兼容API的实现 neu.Node概述neu.Node 是 Node.js-compatible 设备API的实现,允许应用程序开发人员将各种微服务器( http服务器,聊天服务器,代理服务器,游戏服务器,等等 ) ...
node-jvm, 在纯 node.js 中,java虚拟机 节点 jvm 概述节点 jvm - 纯 node.js 中的jvm示例 javapublic class Main { public static long fib(int n) { if (n <= 1
标题揭示选项Node.JS简介和概述过渡滑动介绍和概述什么是node.js? Node.js:registered:是基于Chrome的V8 JavaScript引擎构建JavaScript运行时。 Node.js使用事件驱动的非阻塞I / O模型,从而使其轻巧高效。 Node.js...
- 最后给出了Node.js操作MySQL数据库的代码示例。 适用人群: - 需要使用关系型数据库的软件开发人员 - 要学习MySQL数据库相关知识的学生或 enthusiast 使用场景: - 需要持久化存储和管理结构化数据的软件系统 ...
nodefront, 一个 node.js 供电的快速前端开发工具 Nodefront 若要查看文档 below的样式版本,请访问 nodefront ...概述Nodefront是一个 node.js-powered 命令行工具,可以加速前端开发。安装安装简单,使用 npm:$ np
目录概述IBM Cloudant Node.js SDK允许开发人员在@ibm-cloud/cloudant软件包的帮助下以编程方式与进行交互。特征此Node.js SDK的目的是包装Cloudant提供的大多数HTTP请求API,并提供其他功能以简化Cloudant的使用。...
概述bearcat-dao 是一个 node.js 基于 SQL mapping 的 DAO 框架。实现了基于 SQL mapping 来对数据结果集进行映射,是一种半自动化的模式,相比较于 O/R mapping 全自动化的模式。 因此,在 bearcat-dao 里,开发者...
机智的Node.js SDK node-wit是的Node.js SDK。 安装 在您的Node.js项目中,运行: npm install --save node-wit 快速开始 在您的终端中运行: # Node.js <= 6.x.x, add the flag --harmony_destructuring node...
此示例演示了调用 Node.js Web Api 的 JavaScript SPA 应用程序,该应用程序使用 Azure AD B2C 进行保护 演示如何使用 Passport.js 库通过 Azure AD B2C 保护 Node.js Web API 的示例 概述 此示例演示使用库通过...
概述使用Snowplow Node.js跟踪器将分析添加到JavaScript和TypeScript Node.js应用程序和服务器。 该跟踪器使您可以从Node.js应用程序收集事件数据。找到更多技术文件设定指南贡献开发者 入门确保在$PATH安装了node和...