在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ HTML/ NPM
文本編碼
小結(jié)
API 走馬觀花
API 走馬觀花
迭代
小結(jié)
運(yùn)行
回調(diào)
需求
代碼設(shè)計(jì)模式
進(jìn)程介紹
模塊
工程目錄
小結(jié)
小結(jié)
遍歷目錄
小結(jié)
小結(jié)
API 走馬觀花
用途
NPM
小結(jié)
安裝
網(wǎng)絡(luò)操作介紹
二進(jìn)制模塊
什么是 NodeJS
命令行程序
靈機(jī)一點(diǎn)
域(Domain)
應(yīng)用場景
模塊路徑解析規(guī)則
文件拷貝

NPM

NPM 是隨同 NodeJS 一起安裝的包管理工具,能解決 NodeJS 代碼部署上的很多問題,常見的使用場景有以下幾種:

允許用戶從 NPM 服務(wù)器下載別人編寫的三方包到本地使用。

允許用戶從 NPM 服務(wù)器下載并安裝別人編寫的命令行程序到本地使用。

允許用戶將自己編寫的包或命令行程序上傳到 NPM 服務(wù)器供別人使用。

可以看到,NPM 建立了一個 NodeJS 生態(tài)圈,NodeJS 開發(fā)者和用戶可以在里邊互通有無。以下分別介紹這三種場景下怎樣使用 NPM。

下載三方包

需要使用三方包時,首先得知道有哪些包可用。雖然 npmjs.org 提供了個搜索框可以根據(jù)包名來搜索,但如果連想使用的三方包的名字都不確定的話,就請百度一下吧。知道了包名后,比如上邊例子中的 argv,就可以在工程目錄下打開終端,使用以下命令來下載三方包。

$ npm install argv
...
argv@0.0.2 node_modules\argv

下載好之后,argv 包就放在了工程目錄下的 node_modules 目錄中,因此在代碼中只需要通過 require('argv')的方式就好,無需指定三方包路徑。

以上命令默認(rèn)下載最新版三方包,如果想要下載指定版本的話,可以在包名后邊加上@<version>,例如通過以下命令可下載 0.0.1 版的 argv。

$ npm install argv@0.0.1
...
argv@0.0.1 node_modules\argv

如果使用到的三方包比較多,在終端下一個包一條命令地安裝未免太人肉了。因此 NPM 對 package.json 的字段做了擴(kuò)展,允許在其中申明三方包依賴。因此,上邊例子中的 package.json 可以改寫如下:

{
    "name": "node-echo",
    "main": "./lib/echo.js",
    "dependencies": {
        "argv": "0.0.2"
    }
}

這樣處理后,在工程目錄下就可以使用 npm install 命令批量安裝三方包了。更重要的是,當(dāng)以后 node-echo 也上傳到了 NPM 服務(wù)器,別人下載這個包時,NPM 會根據(jù)包中申明的三方包依賴自動下載進(jìn)一步依賴的三方包。例如,使用 npm install node-echo 命令時,NPM 會自動創(chuàng)建以下目錄結(jié)構(gòu)。

- project/
    - node_modules/
        - node-echo/
            - node_modules/
                + argv/
            ...
    ...

如此一來,用戶只需關(guān)心自己直接使用的三方包,不需要自己去解決所有包的依賴關(guān)系。

安裝命令行程序

從 NPM 服務(wù)上下載安裝一個命令行程序的方法與三方包類似。例如上例中的 node-echo 提供了命令行使用方式,只要 node-echo 自己配置好了相關(guān)的 package.json 字段,對于用戶而言,只需要使用以下命令安裝程序。

$ npm install node-echo -g

參數(shù)中的 -g 表示全局安裝,因此 node-echo 會默認(rèn)安裝到以下位置,并且 NPM 會自動創(chuàng)建好 Linux 系統(tǒng)下需要的軟鏈文件或 Windows 系統(tǒng)下需要的.cmd文件。

- /usr/local/               # Linux系統(tǒng)下
    - lib/node_modules/
        + node-echo/
        ...
    - bin/
        node-echo
        ...
    ...

- %APPDATA%\npm\            # Windows系統(tǒng)下
    - node_modules\
        + node-echo\
        ...
    node-echo.cmd
    ...

發(fā)布代碼

第一次使用 NPM 發(fā)布代碼前需要注冊一個賬號。終端下運(yùn)行 npm adduser,之后按照提示做即可。賬號搞定后,接著我們需要編輯 package.json 文件,加入 NPM 必需的字段。接著上邊 node-echo 的例子,package.json 里必要的字段如下。

{
    "name": "node-echo",           # 包名,在NPM服務(wù)器上須要保持唯一
    "version": "1.0.0",            # 當(dāng)前版本號
    "dependencies": {              # 三方包依賴,需要指定包名和版本號
        "argv": "0.0.2"
      },
    "main": "./lib/echo.js",       # 入口模塊位置
    "bin" : {
        "node-echo": "./bin/node-echo"      # 命令行程序名和主模塊位置
    }
}

之后,我們就可以在 package.json 所在目錄下運(yùn)行 npm publish 發(fā)布代碼了。

版本號

使用 NPM 下載和發(fā)布代碼時都會接觸到版本號。NPM 使用語義版本號來管理代碼,這里簡單介紹一下。

語義版本號分為 X.Y.Z 三位,分別代表主版本號、次版本號和補(bǔ)丁版本號。當(dāng)代碼變更時,版本號按以下原則更新。

+ 如果只是修復(fù)bug,需要更新Z位。

+ 如果是新增了功能,但是向下兼容,需要更新Y位。

+ 如果有大變動,向下不兼容,需要更新X位。

版本號有了這個保證后,在申明三方包依賴時,除了可依賴于一個固定版本號外,還可依賴于某個范圍的版本號。例如"argv": "0.0.x"表示依賴于 0.0.x 系列的最新版 argv。NPM 支持的所有版本號范圍指定方式可以查看官方文檔。

靈機(jī)一點(diǎn)

除了本章介紹的部分外,NPM 還提供了很多功能,package.json 里也有很多其它有用的字段。除了可以在 npmjs.org/doc/ 查看官方文檔外,這里再介紹一些 NPM 常用命令。

  • NPM 提供了很多命令,例如 install 和 publish,使用 npm help 可查看所有命令。

  • 使用 npm help 可查看某條命令的詳細(xì)幫助,例如 npm help install。

  • 在 package.json 所在目錄下使用npm install . -g可先在本地安裝當(dāng)前命令行程序,可用于發(fā)布前的本地測試。

  • 使用npm update <package>可以把當(dāng)前目錄下 node_modules 子目錄里邊的對應(yīng)模塊更新至最新版本。

  • 使用npm update <package> -g可以把全局安裝的對應(yīng)命令行程序更新至最新版。

  • 使用npm cache clear可以清空 NPM 本地緩存,用于對付使用相同版本號發(fā)布新版本代碼的人。

  • 使用npm unpublish <package>@<version>可以撤銷發(fā)布自己發(fā)布過的某個版本代碼。
上一篇:用途下一篇:代碼設(shè)計(jì)模式