1. 程式人生 > 程式設計 >Node.js包管理器npm的具體使用

Node.js包管理器npm的具體使用

目錄
  • 目的
  • npm init 與 package.on檔案
  • 模組安裝與管理
    • 安裝模組
    • 檢視已安裝模組
    • 更新模組
    • 刪除模組
    • npx
  • 模組編譯
    • 版本控制
      • 換源
        • 使用 nrm 工具換源
        • 使用 cnpm 代替 npm
      • 總結

        目的

        目前的Node.js安裝包中都帶有一個重要的工具 包管理器npm 。npm主要有兩方面功能:下載管理第三方模組;構建與執行專案。npm使用本身並不複雜,但是在大陸的網路環境下使用並不省心,徒增許多工作量。這篇文章將對相關內容做個說明。

        npm init 與 package.json檔案

        Node.js的專案根目錄下通常會有一個 package.json 檔案,該檔案主要配置專案相關的資訊,包括obicYSWpp

        專案名稱、版本號、入口檔案、需要的模組等資訊。該檔案可以手動建立,不過通常都是用 npm init 命令來生成的(也可以使用 npm init -y 跳過詢問階段生成帶預設引數的package.json檔案):

        在這裡插入圖片描述

        通常 package.jshttp://www.cppcns.comon 檔案中都會包含很多欄位,比如下面這樣的:

        {
          "name": "naisu","version": "1.0.0","description": "lalala","main": "index.js","scripts": {
            "start": "node index.js"
          },"author": "nx","license": "ISC","dependencies": {
            "electron-squirrel-startup": "^1.0.0","serialport": "^9.2.4"
          },"devDependencies": {
            "electron": "15.1.1","electron-rebuild": "^3.2.3"
          }
        }
        

        其中有些欄位是相對比較重要的,相關說明如下:

        name 專案名稱

        version 專案版本號

        main 專案主入口檔案

        scripts npm run 命令
        比如上面配置了 "start": "node index.js" ,那我們就可以在終端中用 npm run start 來執行 node index.js 命令(start/stop/test/restart這四個命令可以省略run),這在需要執行復雜命令的時候很好用;

        dependencies 專案執行所依賴的模組
        devDependencies 專案開發所需要的模組
        這兩個欄位儲存了專案所依賴的模組名稱和版本,有這個資訊後就可以使用 npm install

        來安裝這些模組到專案中了

        模組安裝與管理

        安裝模組

        模組安裝使用 npm install <packageName> 方式,比如下面演示中安裝了 cowsay 模組:

        在這裡插入圖片描述

        npm在安裝模組的時候會同時安裝該模組所依賴的模組,預設情況下會安裝在目錄下的 node_modules 資料夾中,安裝的模組會記錄在 package.json 檔案的 dependencies 欄位中,同時會在 package-lock.json 檔案中記錄模組與依賴的模組的版本資訊。

        安裝時模組名稱後可以加上 @版本號 來安裝指定版本,如 npm install [email protected]

        如果一個模組已安裝了,再次執行安裝命令的時候將不會重新安裝,可以使用 -f--force 選項 強制安裝來處理: npm install --force <packageName>

        在安裝時可以使用 -S--save 選項將模組標記為 dependencies 專案執行所依賴的模組(預設值);也可以使用 -D--save-dev 選項將模組標記為 devDependencies 專案開發所需要的模組,如 npm install --save-dev <packageName>

        模組也可以使用 -g--global 選項安裝到全域性目錄,如 npm install --global <packageName>

        安裝模組命令中的 install 也可以簡寫為 i 使用。

        檢視已安裝模組

        使用 npm list 可以檢視當前目錄已安裝的模組及其依賴關係。

        使用 -g--global 選項可以檢視全域性安裝的模組資訊,使用 --depth=x 可以指定檢視深度。

        在這裡插入圖片描述

        更新模組

        使用 npm update <packageName> 可以用來更新模組,上面提到的 --save --save-dev --global 等選項在這裡也可以用。

        刪除模組

        使用 npm uninstall <packageName> 可以解除安裝模組。
        使用 -g--global 選項可以解除安裝全域性模組。

        npx

        npx是新版本的npm(自 5.2 起)中帶的一個工具,主要是用來執行模組的:如果專案目錄或是系統環境中有該模組的話直接執行該模組,如果沒有的話會也不用安裝,npx會將它下載到一個臨時目錄中再執行。

        在這裡插入圖片描述

        模組編譯

        有的第三方模組是用其它語言開發的,這些模組不能直接執行,需要針對執行環境進行編譯後才能使用,這就需要編譯工具了,最常見的比如 node-gypnode-pre-gyp 工具。對於某些模組在某些平臺上可能還需要一些其它的工具,比如在windows平臺上經常會需要用到 windows-build-tools 這個工具。

        這些工具都可以在用到的時候再安裝進行編譯,多數時候npm會自動處理這些事情。有的平臺也可以在安裝Node.js時安裝這些工www.cppcns.com具,比如在windows平臺上可以在安裝Node.js時勾選安裝這些工具:

        在這裡插入圖片描述

        它會在安裝完Node.js後接著安裝這些工具:

        在這裡插入圖片描述

        在這裡插入圖片描述

        如果一開始安裝Node.js的時候沒有勾選這個也沒事,重新安裝下也可以。

        版本控制

        在前面出現的 package.jsonpackage-lock.json 檔案中都記錄http://www.cppcns.com了模組相關資訊,其中一個重要的資訊就是模組的版本號。

        Node.js中模組或專案的版本號由以點分隔的三個數字組成,從左到右依次為 主版本次版本補丁版本

        版本號規則本身沒什麼特別的,不過在npm管理和 package.json 、 package-lock.json 兩個檔案中版本號前後有很多修飾符,這些符號規定了模組在安裝、更新時的規則,常見的規則如下:

        • 無任何修飾:指定特定版本,如 2.2.3
        • latest :使用可用的最新版本;
        • ^ :只會執行不更改最左邊非零數字的更新;
        • ~ :只會更新補丁版本;
        • > :接受高於指定版本的任何版本;
        • < :接受低於指定版本的任何版本;
        • = :接受確切的版本,可以和 < > 組合使用;
        • - :接受一定範圍的版本,如 2.1.0 - 2.6.2
        • || :組合,如 < 2.1 || > 2.6

        換源

        在大陸的網路環境下經常會配到模組下載安裝出錯或是失敗,導致程式無法正確執行,可以嘗試下面步驟重新安裝:

        • 清除快取 npm cache clean --force
        • 刪除 node_modules 資料夾及其中內容;
        • 如果有 package-lock.json 檔案也可以刪除它(記得備份);
        • 重新安裝模組(有 package.json 檔案的話只要 npm install 就可以一步安裝所有模組);

        如果上面方式不管用,並且沒有梯子或是梯子也不管用的話就只能嘗試換源了。

        使用 nrm 工具換源

        npm換源最方便的就是使用 nrm 工具了,可以使用 npm install -g nrm 全域性安裝,當然也可以直接使用 npx nrm 來使用。 nrm 常用操作主要就下面這些:

        • nrm ls 列出可用源與地址;
        • nrm test 測試可用源速度;
        • nrm use <registry> 切換源;
        • add <registry> <url> 新增源;
        • del <registry> 刪除源;

        在這裡插入圖片描述

        使用 cnpm 代替 npm

        cnpm 可以用來代替 npm 的大部分工作,但它使用的是淘寶的映象源,詳細可見: https://npmmirror.com/

        可以使用 npm install -g cnpm --registry=https://registry.npmmirror.com 來安裝 cnpm 。之後使用的時候只要把原本需要 npm 的地方換成 cnpm 就行了。

        總結

        Node.js開發基本離不開npm工具,不過npm使用也簡單,遇到主要的問題可能就是網路問題了。

        Node.js中包管理工具除了npm和上面的cnpm外常見的還有Yarn,具體資訊可以參考其官方連結:https://classic.yarnpkg.com/lang/en/

        到此這篇關於Node.js包管理器npm的具體使用的文章就介紹到這了,更多相關Nodehttp://www.cppcns.com.js包管理器npm內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!