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!"); }