更新時(shí)間:2022-12-22 來(lái)源:黑馬程序員 瀏覽量:
在Node.js 中,會(huì)將某個(gè)獨(dú)立的功能封裝起來(lái),用于發(fā)布、更新、依賴管理和進(jìn)行版本控制。Nodejs 根據(jù)CommonJS規(guī)范實(shí)現(xiàn)了包機(jī)制,開(kāi)發(fā)了NPM包管理工具,用來(lái)解決包的發(fā)布和獲取需求。
Node.js的包和模塊并沒(méi)有本質(zhì)的不同,包是在模塊的基礎(chǔ)上更進(jìn)一步的組織JavaScript代碼的目錄。Nodejs 包和模塊的關(guān)系如下圖所示:
圖中可以看出,一個(gè)包中應(yīng)該有一個(gè)出口模塊,用于向外部開(kāi)放接口,使用者只需要拿到出口模塊,而不用關(guān)心包中的其他內(nèi)容。
Node,js的包基本遵循 CommonJS規(guī)范,規(guī)范的包目錄結(jié)構(gòu)如表 1 所示。
在實(shí)際開(kāi)發(fā)中,當(dāng)某個(gè)包需要發(fā)布到網(wǎng)上,供他人使用時(shí),最好遵守 CommonJS規(guī)范Nodejs 包中包含JSON格式的包說(shuō)明文件 package.jison。在規(guī)范中 package.json 文件好比一個(gè)產(chǎn)品說(shuō)明書(shū),它的優(yōu)勢(shì)在于當(dāng)開(kāi)發(fā)者拿到一個(gè)第三方包文件時(shí),可以對(duì)包的信息一目了然,package.json文件中用于描述信息的屬性如表2所示。
在package.json文件中,屬性和值通過(guò)JSON字符串的形式進(jìn)行描述。