国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

NodeJs 包(package)

2021-09-15 09:36 更新

我們已經(jīng)知道了JS模塊的基本單位是單個(gè)JS文件,但復(fù)雜些的模塊往往由多個(gè)子模塊組成。為了便于管理和使用,我們可以把由多個(gè)子模塊組成的大模塊稱做,并把所有子模塊放在同一個(gè)目錄里。

在組成一個(gè)包的所有子模塊中,需要有一個(gè)入口模塊,入口模塊的導(dǎo)出對(duì)象被作為包的導(dǎo)出對(duì)象。例如有以下目錄結(jié)構(gòu)。

- /home/user/lib/
    - cat/
        head.js
        body.js
        main.js

其中cat目錄定義了一個(gè)包,其中包含了3個(gè)子模塊。main.js作為入口模塊,其內(nèi)容如下:

var head = require('./head');
var body = require('./body');

exports.create = function (name) {
    return {
        name: name,
        head: head.create(),
        body: body.create()
    };
};

在其它模塊里使用包的時(shí)候,需要加載包的入口模塊。接著上例,使用require('/home/user/lib/cat/main')能達(dá)到目的,但是入口模塊名稱出現(xiàn)在路徑里看上去不是個(gè)好主意。因此我們需要做點(diǎn)額外的工作,讓包使用起來(lái)更像是單個(gè)模塊。

index.js

當(dāng)模塊的文件名是index.js,加載模塊時(shí)可以使用模塊所在目錄的路徑代替模塊文件路徑,因此接著上例,以下兩條語(yǔ)句等價(jià)。

var cat = require('/home/user/lib/cat');
var cat = require('/home/user/lib/cat/index');

這樣處理后,就只需要把包目錄路徑傳遞給require函數(shù),感覺(jué)上整個(gè)目錄被當(dāng)作單個(gè)模塊使用,更有整體感。

package.json

如果想自定義入口模塊的文件名和存放位置,就需要在包目錄下包含一個(gè)package.json文件,并在其中指定入口模塊的路徑。上例中的cat模塊可以重構(gòu)如下。

- /home/user/lib/
    - cat/
        + doc/
        - lib/
            head.js
            body.js
            main.js
        + tests/
        package.json

其中package.json內(nèi)容如下。

{
    "name": "cat",
    "main": "./lib/main.js"
}

如此一來(lái),就同樣可以使用require('/home/user/lib/cat')的方式加載模塊。NodeJS會(huì)根據(jù)包目錄下的package.json找到入口模塊所在位置。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)