深入聊聊Node.js中的模塊化( 三 )


npm init -y注意:
(1)上述命令只能在英文的目錄下成功運行!所以 , 項目文件夾的名稱一定要使用英文命名 , 不要使用中文 , 不能出現空格 。
(2)@運行 npm install 命令安裝包的時候 , npm 包管理工具會自動把包的名稱和版本號 , 記錄到 package.json 中 。

    特別注意:現在的版本安裝包會自動生成package.json 。
4、dependencies 節點
package.json 文件中 , 有一個 dependencies 節點 , 專門用來記錄您使用 npm install 命令安裝了哪些包 。
5、一次性安裝所有的包
當我們拿到一個剔除了 node_modules 的項目之后 , 需要先把所有的包下載到項目中 , 才能將項目運行起來 。
否則會報類似于下面的錯誤:
深入聊聊Node.js中的模塊化

文章插圖

可以運行 npm install 命令(或 npm i)一次性安裝所有的依賴包:
深入聊聊Node.js中的模塊化

文章插圖

6、卸載包
可以運行 npm uninstall 命令 , 來卸載指定的包:
npm uninstall 具體的包名注意:npm uninstall 命令執行成功后 , 會把卸載的包 , 自動從 package.json 的 dependencies 中移除掉 。 卸載沒有簡寫 。
7、devDependencies 節點
如果某些包只在項目開發階段會用到 , 在項目上線之后不會用到 , 則建議把這些包記錄到 devDependencies 節點中 。
與之對應的 , 如果某些包在開發和項目上線之后都需要用到 , 則建議把這些包記錄到 dependencies 節點中 。
您可以使用如下的命令 , 將包記錄到 devDependencies 節點中:
深入聊聊Node.js中的模塊化

文章插圖

3.4 解決下包速度慢的問題
1、為什么下包速度慢
在使用 npm 下包的時候 , 默認從國外的 registry.npmjs.org/ 服務器進行下載 , 因此下包速度會很慢 。
2、淘寶 NPM 鏡像服務器
淘寶在國內搭建了一個服務器 , 專門把國外官方服務器上的包同步到國內的服務器 , 然后在國內提供下包的服務 。 從而極大的提高了下包的速度 。
擴展:
鏡像(Mirroring)是一種文件存儲形式 , 一個磁盤上的數據在另一個磁盤上存在一個完全相同的副本即為鏡像 。
深入聊聊Node.js中的模塊化

文章插圖

3、切換 npm 的下包鏡像源
下包的鏡像源 , 指的就是下包的服務器地址 。
深入聊聊Node.js中的模塊化

文章插圖

4、nrm
為了更方便的切換下包的鏡像源 , 我們可以安裝 nrm 這個小工具 , 利用 nrm 提供的終端命令 , 可以快速查看和切換下包的鏡像源 。
深入聊聊Node.js中的模塊化

文章插圖

3.5 包的分類
使用 npm 包管理工具下載的包 , 共分為兩大類 , 分別是:
    項目包
    全局包
1、項目包
那些被安裝到項目的 node_modules 目錄中的包 , 都是項目包 。
項目包又分為兩類 , 分別是:
    開發依賴包(被記錄到 devDependencies 節點中的包 , 只在開發期間會用到)
    核心依賴包(被記錄到 dependencies 節點中的包 , 在開發期間和項目上線之后都會用到)

深入聊聊Node.js中的模塊化

文章插圖

2、全局包
在執行 npm install 命令時 , 如果提供了 -g 參數 , 則會把包安裝為全局包 。
全局包會被安裝到 C:\Users\用戶目錄\AppData\Roaming\npm\node_modules 目錄下 。
深入聊聊Node.js中的模塊化

文章插圖

注意:
(1)只有工具性質的包 , 才有全局安裝的必要性 。 因為它們提供了好用的終端命令 。
(2)判斷某個包是否需要全局安裝后才能使用 , 可以參考官方提供的使用說明即可 。
3、i5ting_toc
i5ting_toc 是一個可以把 md 文檔轉為 html 頁面的小工具 , 使用步驟如下:
深入聊聊Node.js中的模塊化

文章插圖

3.6 規范的包結構
在清楚了包的概念、以及如何下載和使用包之后 , 接下來 , 我們深入了解一下包的內部結構 。
一個規范的包 , 它的組成結構 , 必須符合以下 3 點要求:
(1)包必須以單獨的目錄而存在
(2)包的頂級目錄下要必須包含 package.json 這個包管理配置文件

推薦閱讀