广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >Node.js的包详细介绍
  • 831
分享到

Node.js的包详细介绍

详细介绍Nodejs 2022-06-04 17:06:45 831人浏览 薄情痞子
摘要

在node.js语言中,包和模块并没有本质的不同,包是在模块的基础上更深一步的抽象,包将某个独立的功能封装起来,用于发布、更新、依赖管理和进行版本控制。node.js根据CommonJS规范实现了包机制,开

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"  

     }  

  }  

}

--结束END--

本文标题: Node.js的包详细介绍

本文链接: https://www.lsjlt.com/news/12217.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Node.js的包详细介绍
    在Node.js语言中,包和模块并没有本质的不同,包是在模块的基础上更深一步的抽象,包将某个独立的功能封装起来,用于发布、更新、依赖管理和进行版本控制。Node.js根据CommonJS规范实现了包机制,开...
    99+
    2022-06-04
    详细介绍 Node js
  • 什么是Node.js?Node.js详细介绍
    简介 如果您听说过 Node,或者阅读过一些文章,宣称 Node 是多么多么的棒,那么您可能会想:“Node 究竟是什么东西?”尽管不是针对所有人的,但 Node 可能是某些人的正确选择。 为试图解释什么是...
    99+
    2022-06-04
    详细介绍 Node js
  • RPM包知识点详细介绍
    这篇文章主要介绍“RPM包知识点详细介绍”,在日常操作中,相信很多人在RPM包知识点详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”RPM包知识点详细介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-16
  • node.js缓冲区buffer的详细介绍
    这篇文章主要介绍“node.js缓冲区buffer的详细介绍”,在日常操作中,相信很多人在node.js缓冲区buffer的详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-19
  • Node.js模块化的使用详细介绍
    目录什么是模块化编程领域中的模块化模块化规范Node.js中的模块化加载模块Node.js中的模块作用域1. 什么是模块作用域2. 模块作用域的好处向外共享模块作用域中的成员1. m...
    99+
    2022-11-13
  • Node.js 与并发模型的详细介绍
    目录进程线程内核态线程用户态线程轻量级进程(LWP)小结协程I/O 模型阻塞 I/O非阻塞 I/O同(异)步 I/ONode.js 的并发模型总结前言: Node.js 现在已成为构...
    99+
    2022-11-13
  • Flink的详细介绍
    这篇文章主要介绍“Flink的详细介绍”,在日常操作中,相信很多人在Flink的详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Flink的详细介绍”的疑惑有所帮助!接...
    99+
    2022-10-19
  • rabbitMQ的详细介绍
    1.概述 RabbitMQ是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑RabbitMQ是一个快递站,一个快递员帮你传递快件。...
    99+
    2023-09-05
    rabbitmq npm linux java 分布式
  • OAuth2 详细介绍!
    目录 一、文章介绍 二、OAth2 2.1 简介 2.2 OAuth2  授权总体流程 2.3 四种授权模式 1.授权码模式 2.简化模式 3.密码模式 4. 客户端模式 2.4 OAuth2 标准接口 2.5 GitHub 授权登录 1...
    99+
    2023-09-15
    github java
  • springMVC详细介绍
    目录springMVC简介SpringMVC框架的优点第一个SpringMVC程序第一步:创建maven-web项目第二步:在pom.xml中添加依赖和插件第三步注册中央调度器第四步...
    99+
    2022-11-12
  • DockerCompose详细介绍
    目录一、Docker Compose的安装二、Docker Compose的基本使用三、Docker Compose的高级功能四、总结一、Docker Compose的安装 Dock...
    99+
    2023-05-16
    Docker Compose详解 Docker Compose
  • Gradle编译打包Android apk详细介绍
    Gradle编译打包Android apk详细介绍 理解Gradle构建过程,解读Android Gradle插件的配置 阅读本文一定是要使用过Gradle生成apk,文中不...
    99+
    2022-06-06
    gradle apk Android
  • Java中包装类和Arrays类的详细介绍
    目录包装类为什么需要包装类自动装箱:自动拆箱:包装类的特有功能:小结:Arrays类Arrays类的概述Arrays类的常用APIsort方法自定义规则:总结包装类 包装类其实就是8...
    99+
    2022-12-14
    java的Arrays类 Java包装类 java的array类
  • Linux网络抓包工具tcpdump的详细介绍
    这篇文章主要介绍“Linux网络抓包工具tcpdump的详细介绍”,在日常操作中,相信很多人在Linux网络抓包工具tcpdump的详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux网络抓包工具...
    99+
    2023-06-13
  • SQL Server的详细介绍
    一、SQL Server的数据存储结构SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windo...
    99+
    2022-10-18
  • Android Handler的详细介绍
    Handler的定义  主要接受子线程发送的数据, 并用此数据配合主线程更新UI.  解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线...
    99+
    2022-06-06
    handler Android
  • Java NIO的详细介绍
    这篇文章主要讲解了“Java NIO的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java NIO的详细介绍”吧!首先,我们需要弄清楚几个概念:同步和异步,阻塞和非阻塞。同步和异步...
    99+
    2023-06-16
  • Android aapt自动打包工具详细介绍
    Android aapt自动打包工具 概念 在Android.mk中有LOCAL_AAPT_FLAGS配置项,在gradle中也有aaptOptions,那么aapt到底是干什...
    99+
    2022-06-06
    工具 aapt Android
  • golang RPC包原理和使用详细介绍
    目录工作流程工作模式http模式服务器模式本篇文章旨在通过学习rpc包和github上的一个rpc小项目,熟悉和学习golang中各个包的使用 工作流程 通过阅读官方文档,了解了rp...
    99+
    2022-11-11
  • Node.js中的缓冲与流模块详细介绍
    缓冲(buffer)模块 js起初就是为浏览器而设计的,所以能很好的处理unicode编码的字符串,但不能很好的处理二进制数据。这是Node.js的一个问题,因为Node.js旨在网络上发送和接收经常是以二...
    99+
    2022-06-04
    详细介绍 模块 Node
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作