nj06---包

2、建立包
1.包的概念
包是在模塊基礎上更深一步的抽象,Node.js的包相似於C/C++的函數庫或者java的類庫,它講某個獨立的功能封裝起來,用於發佈、更新、依賴管理的版本控制。開發了npm來解決包的發佈和獲取需求。

2.如何建立一個包
CommonJS規範的包應該具有一下特徵:
    package.json必須在包的頂層目錄下
    二進制文件應該在bin目錄下
    javaScript代碼應該在lib目錄下
    文檔應該在doc目錄下
    單元測試應該在test目錄下
Node.js對包要求並無那麼嚴格,只要頂層目錄下有package.json,並符合基本規範便可
(1)做爲文件夾的模塊
somepackage文件夾
最簡單的包,就是一個做爲文件夾的模塊,
建立一個文件夾 somepackage,裏面有一個index.js,裏面提供一個方法sayHello()
var somepackage=require('./somepackage');
 somepackage.sayHello();
咱們使用這種方法能夠把文件夾封裝成一個模塊,即所謂的包。包一般是一些模塊的集合,在模塊的基礎上提供了更高層的抽象,至關於提供了一些固定接口的函數庫,經過定製package.json,咱們能夠建立更復雜、更完善、更符合規範的包用於發佈。

(2)package.json
前面的例子,在somepackage文件夾下,咱們建立一個package.json的文件,內容
{
    'main':'./lib/index.js'
}
Node.js在調用某個包時,會檢查包中package.json文件的main字段,將其做爲包的接口模塊,若是package.json或main字段不存在,會常事尋找index.js或index.code做爲包的接口
package.json的規範屬性:
name:包的名稱,必須是惟一
description:包的簡要說明
version:符合語義化版本識別規範的版本字符串
keywords:關鍵字數據,一般用於搜索
maintainers:維護者數組,每一個元素要包含name、email、web可選字段
contributors:貢獻者數組,格式與maintainers相同。包的坐着應該是貢獻者數據的第一個元素
bugs:提交bug的地址,能夠是網址或者電子郵件地址
licenses:許可證數組,每一個元素要包含type和url字段
repositories:倉庫託管地址數組,每一個元素要包含type、url和path字段
dependencies:包的依賴,一個關聯數組,由包名稱和版本號組成。

package.jsonjava

{
  "main":"./lib/package.js"
}

package.jsweb

exports.say=function(){//公共方法
console.log(" test package!");
}

相關文章
相關標籤/搜索