`
ldb19890624
  • 浏览: 243772 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Node.js的包概述

 
阅读更多

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硬实战 115个核心技巧.pdf

    Node.js是基于Chrome V8引擎的JavaScript运行环境,它以其非阻塞I/O、事件驱动的特性在服务器端编程领域独树一帜,尤其适合构建高性能的网络应用。本书通过115个关键技巧的讲解,全面覆盖了Node.js的基础到高级应用...

    Node.js Design Patterns, 2nd Edition.pdf

    ### Node.js设计模式第二版知识点概述 #### 一、书籍基本信息 - **书名**:《Node.js设计模式》第二版 - **作者**:Mario Casciaro与Luciano Mammino - **出版时间**:第二版于2016年7月发布 - **出版社**:Packt ...

    Node.js-Doodoo.js--中文最佳实践Node.jsWeb快速开发框架支持Koa.js中间件

    **Node.js 概述** Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者使用 JavaScript 语言在服务器端编写可扩展的网络应用。Node.js 利用了事件驱动、非阻塞I/O模型,使其在处理高并发请求时...

    Node.js-node.js中文资料导航

    **Node.js 概述** Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者使用 JavaScript 进行服务器端编程。Node.js 使用了一个事件驱动、非阻塞 I/O 模型,使其轻量又高效,特别适合于数据密集...

    Node.js Design Patterns Second Edition.pdf (node.js 设计模式)高清

    《Node.js Design Patterns Second Edition》(Node.js设计模式第二版)是一本深入探讨Node.js高级编程技术的书籍,它旨在帮助开发者充分利用Node.js的强大功能和最佳组件来构建高效、可扩展的应用程序。本书不仅...

    Node.JS介紹

    #### 一、Node.JS概述 **Node.JS**是一种基于**JavaScript**的开放源代码服务器环境,它能够帮助开发者构建高效且可伸缩的网络应用程序。与传统的服务器环境不同,Node.JS采用了单线程、事件驱动的架构,这使得它...

    The Node.js Little Book 中文版[Node.js 台湾社群协作电子书]1

    "Node.js Little Book 中文版知识点概述" Node.js Little Book中文版是Node.js台湾社群协作电子书,旨在提供一个完全的Node.js入门学习指南。本书涵盖了Node.js的基本概念、安装、配置、基础使用、NPM套件管理工具...

    Node.js-serialport-读和写访问串行端口的Node.js包

    在终端中,你可以使用npm(Node.js的包管理器)来安装: ```bash npm install serialport ``` **3. 基本使用** 安装完成后,你可以通过以下方式在Node.js脚本中引入Serialport: ```javascript const SerialPort...

    node.js初步简介

    #### 一、Node.js概述与应用场景 Node.js是一个开源的服务器端JavaScript运行环境,它能够使开发者使用JavaScript编写服务器端应用程序。Node.js的核心优势在于它的非阻塞I/O模型和事件驱动架构,这使得Node.js特别...

    Node.js-Derby-MVC框架使其易于编写实时协作的能运行在Node.js和浏览器中的应用程序

    **Node.js 概述** Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者使用 JavaScript 进行服务器端编程。Node.js 使用了一个事件驱动、非阻塞 I/O 模型,这使得它轻量又高效,非常适合构建...

    Practical Node.js 2nd Edition

    ### 实用Node.js第二版知识点概述 #### 一、书籍基本信息 - **书名**:实用Node.js 第二版(Practical Node.js Second Edition) - **作者**:Azat Mardan - **出版日期**:2018年 - **ISBN-13 (平装)**:978-1-...

    Node.js-peerflix-node.js的流torrent客户端

    安装Peerflix通常通过npm(Node.js包管理器)进行,命令如下: ``` npm install -g peerflix ``` 然后,用户可以使用命令行工具输入torrent链接或磁力链接,启动播放: ``` peerflix "torrent链接或磁力链接" --vlc ...

    Node.js项目实战完整版教学课件汇总

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,具有命令行工具、子进程、事件驱动、异步编程等特点。 Node.js 的优势包括单线程模式、非阻塞 I/O、轻量高效、事件驱动、异步编程等。 Node.js 的应用...

    Node.js技术架构概述.pptx

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,由Ryan Dahl在2009年创建,初衷是为了解决并发处理的问题。Node.js的核心特性是其单线程、异步事件驱动的架构,这使得它非常适合处理并行计算、分布式计算以及...

    Node.js 的安装及环境配置步骤.docx

    #### 一、Node.js 概述 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它使得开发人员能够在服务器端执行 JavaScript 代码,从而实现全栈 JavaScript 开发的能力。Node.js 以其非阻塞 I/O 和事件驱动...

Global site tag (gtag.js) - Google Analytics