欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js的包詳細(xì)介紹

 更新時(shí)間:2015年01月14日 10:29:33   投稿:junjie  
這篇文章主要介紹了Node.js的包詳細(xì)介紹,Node.js的包是一個(gè)目錄,其中包含JSON格式的包說(shuō)明文件package.json,Node.js的包基本遵循CommonJS規(guī)范,需要的朋友可以參考下

在Node.js語(yǔ)言中,包和模塊并沒(méi)有本質(zhì)的不同,包是在模塊的基礎(chǔ)上更深一步的抽象,包將某個(gè)獨(dú)立的功能封裝起來(lái),用于發(fā)布、更新、依賴管理和進(jìn)行版本控制。Node.js根據(jù)CommonJS規(guī)范實(shí)現(xiàn)了包機(jī)制,開發(fā)了npm來(lái)解決包的發(fā)布和獲取需求。

Node.js的包是一個(gè)目錄,其中包含JSON格式的包說(shuō)明文件package.json。Node.js的包基本遵循CommonJS規(guī)范,因此具備以下特征:

CommonJS規(guī)范定義的包特性:

1)頂層目錄包含package.json文件;
2)bin目錄存放二進(jìn)制文件;
3)lib目錄存放JavaScript文件;
4)doc目錄存放文檔;
5)test目錄存放單元測(cè)試。

Node.js的模塊與文件是一一對(duì)應(yīng)的,文件不僅可以是JavaScript源碼文件或二進(jìn)制文件,還可以是目錄。最簡(jiǎn)單的包,就是一個(gè)目錄的模塊。

Node.js的包通常是一些模塊的集合,在模塊的基礎(chǔ)上提供了更高層的抽象,相當(dāng)于提供了一些固定接口的函數(shù)庫(kù)。
通過(guò)定制package.json,我們可以創(chuàng)建更復(fù)雜、更完善、更符合規(guī)范的包用于發(fā)布。

Node.js在調(diào)用包時(shí),首先會(huì)檢查包中的package.json文件的main字段,將其作為包的接口模塊,如果package.json文件的main字段不存在,那么Node.js會(huì)嘗試尋找index.js或index.node作為包的接口。

package.json文件是CommonJS規(guī)范用于描述包的文件,完全符合規(guī)范的package.json文件應(yīng)該包含以下字段:
1)name:包名。包名是唯一的,由小寫字母、數(shù)字和下劃線組成,不能含空格。
2)description:包說(shuō)明。對(duì)包進(jìn)行簡(jiǎn)要描述。
3)version:版本號(hào)。滿足《語(yǔ)義化版本識(shí)別》規(guī)范的版本字符串。
4)keywords:關(guān)鍵字?jǐn)?shù)組,通常用于搜索。
5)maintainers:維護(hù)者數(shù)組。每個(gè)元素包含name、email(可選)、web(可選)字段。
6)contributors:貢獻(xiàn)者數(shù)組。格式與maintainer數(shù)組相同。包作者應(yīng)該是貢獻(xiàn)者數(shù)組的第一個(gè)元素。
7)bugs:提交bug的地址,可以是網(wǎng)址或電郵地址。
8)licenses:許可證數(shù)組。每個(gè)元素要包含type(許可證名稱)和url(鏈接到許可證文本的地址)字段。
9)repositories:倉(cāng)庫(kù)托管地址數(shù)組。每個(gè)元素要包含type(倉(cāng)庫(kù)的類型,如Git)、url(倉(cāng)庫(kù)地址)和path(相對(duì)于倉(cāng)庫(kù)的路徑,可選)字段。
10)dependencies:包依賴。是一個(gè)關(guān)聯(lián)數(shù)組,由包名和版本號(hào)組成。

注:《語(yǔ)義化版本識(shí)別》規(guī)范是國(guó)外提出的一套版本命名規(guī)范,最初目的是解決各種各樣的版本號(hào)大小比較的問(wèn)題,目前被許多包管理系統(tǒng)所采用。

下面是一個(gè)完全符合CommonJS規(guī)范的package.json例子:

復(fù)制代碼 代碼如下:

{  
  "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" 
     } 
  } 
}

相關(guān)文章

  • nodeJs鏈接Mysql做增刪改查的簡(jiǎn)單操作

    nodeJs鏈接Mysql做增刪改查的簡(jiǎn)單操作

    本篇文章主要介紹了nodeJs鏈接Mysql做增刪改查的簡(jiǎn)單操作,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • node.js使用fs讀取文件出錯(cuò)的解決方案

    node.js使用fs讀取文件出錯(cuò)的解決方案

    在本篇文章里我們給大家?guī)?lái)一篇關(guān)于node.js使用fs讀取文件出錯(cuò)的解決辦法,有需要的朋友們參考下。
    2019-10-10
  • 使用Node.js插件給指定目錄下的所有圖片添加上文字水印

    使用Node.js插件給指定目錄下的所有圖片添加上文字水印

    加水印是為了保護(hù)圖片的版權(quán)和安全,在互聯(lián)網(wǎng)上,很容易將圖片下載或者截屏保存下來(lái),然后進(jìn)行二次使用,這就侵犯了原作者的版權(quán),此外,水印也可以幫助識(shí)別圖片的來(lái)源和所有者,因此本文給大家介紹了如何使用Node.js插件給指定目錄下的所有圖片添加上文字水印
    2023-12-12
  • 使用express搭建一個(gè)簡(jiǎn)單的查詢服務(wù)器的方法

    使用express搭建一個(gè)簡(jiǎn)單的查詢服務(wù)器的方法

    本篇文章主要介紹了使用express搭建一個(gè)簡(jiǎn)單的查詢服務(wù)器的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • node.js中的buffer.toJSON方法使用說(shuō)明

    node.js中的buffer.toJSON方法使用說(shuō)明

    這篇文章主要介紹了node.js中的buffer.toJSON方法使用說(shuō)明,本文介紹了buffer.toJSON的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • NodeJS開發(fā)人員常見五個(gè)錯(cuò)誤理解

    NodeJS開發(fā)人員常見五個(gè)錯(cuò)誤理解

    這篇文章主要介紹了NodeJS開發(fā)人員常見五個(gè)錯(cuò)誤理解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 詳解express使用vue-router的history踩坑

    詳解express使用vue-router的history踩坑

    這篇文章主要介紹了express 使用 vue-router 的 history 踩坑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Nodejs 數(shù)組的隊(duì)列以及forEach的應(yīng)用詳解

    Nodejs 數(shù)組的隊(duì)列以及forEach的應(yīng)用詳解

    這篇文章主要介紹了Nodejs 數(shù)組的隊(duì)列以及forEach的應(yīng)用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • 為什么使用koa2搭建微信第三方公眾平臺(tái)的原因

    為什么使用koa2搭建微信第三方公眾平臺(tái)的原因

    這篇文章主要介紹了為什么使用koa2搭建微信第三方公眾平臺(tái)的原因,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • NPM配置私服構(gòu)建內(nèi)網(wǎng)中央倉(cāng)庫(kù)過(guò)程詳解

    NPM配置私服構(gòu)建內(nèi)網(wǎng)中央倉(cāng)庫(kù)過(guò)程詳解

    這篇文章主要為大家介紹了NPM配置私服構(gòu)建內(nèi)網(wǎng)中央倉(cāng)庫(kù)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08

最新評(píng)論