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


就像電腦和計算機指的是相同的東西 , 第三方模塊和包指的是同一個概念 , 只不過叫法不同 。
2、包的來源
不同于 Node.js 中的內置模塊與自定義模塊 , 包是由第三方個人或團隊開發出來的 , 免費供所有人使用 。
注意:Node.js 中的包都是免費且開源的 , 不需要付費即可免費下載使用 。
3、為什么需要包
由于 Node.js 的內置模塊僅提供了一些底層的 API , 導致在基于內置模塊進行項目開發的時 , 效率很低 。
包是基于內置模塊封裝出來的 , 提供了更高級、更方便的 API , 極大的提高了開發效率 。
包和內置模塊之間的關系 , 類似于 jQuery 和 瀏覽器內置 API 之間的關系 。
4、從哪里下載包
國外有一家 IT 公司 , 叫做 npm, Inc. 這家公司旗下有一個非常著名的網站: www.npmjs.com/ , 它是全球最大的包共享平臺 , 你可以從這個網站上搜索到任何你需要的包 , 只要你有足夠的耐心!
到目前位置 , 全球約 1100 多萬的開發人員 , 通過這個包共享平臺 , 開發并共享了超過 120 多萬個包 供我們使用 。
npm, Inc. 公司提供了一個地址為 registry.npmjs.org/ 的服務器 , 來對外共享所有的包 , 我們可以從這個服務器上下載自己所需要的包 。
注意:
從 www.npmjs.com/ 網站上搜索自己所需要的包
從 registry.npmjs.org/ 服務器上下載自己需要的包
5、如何下載包
npm, Inc. 公司提供了一個包管理工具 , 我們可以使用這個包管理工具 , 從 registry.npmjs.org/ 服務器把需要的包下載到本地使用 。
這個包管理工具的名字叫做 Node Package Manager(簡稱 npm 包管理工具) , 這個包管理工具隨著 Node.js 的安裝包一起被安裝到了用戶的電腦上 。
大家可以在終端中執行 npm -v 命令 , 來查看自己電腦上所安裝的 npm 包管理工具的版本號:

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

文章插圖

3.2 npm 初體驗
1、在項目中安裝包的命令
如果想在項目中安裝指定名稱的包 , 需要運行如下的命令:
npm install 包的完整名稱上述的裝包命令 , 可以簡寫成如下格式:
npm i 包的完整名稱2、初次裝包后多了哪些文件
初次裝包完成后 , 在項目文件夾下多一個叫做 node_modules 的文件夾和 package-lock.json 的配置文件 。
其中:
node_modules 文件夾用來存放所有已安裝到項目中的包 。 require() 導入第三方包時 , 就是從這個目錄中查找并加載包 。
package-lock.json 配置文件用來記錄 node_modules 目錄下的每一個包的下載信息 , 例如包的名字、版本號、下載地址等 。
注意:程序員不要手動修改 node_modules 或 package-lock.json 文件中的任何代碼 , npm 包管理工具會自動維護它們 。
3、安裝指定版本的包
默認情況下 , 使用 npm install 命令安裝包的時候 , 會自動安裝最新版本的包 。 如果需要安裝指定版本的包 , 可以在包名之后 , 通過 @ 符號指定具體的版本 , 例如:
npm i moment@2.22.24、包的語義化版本規范
包的版本號是以“點分十進制”形式進行定義的 , 總共有三位數字 , 例如 2.24.0
其中每一位數字所代表的的含義如下:
第1位數字:大版本
第2位數字:功能版本
第3位數字:Bug修復版本
版本號提升的規則:只要前面的版本號增長了 , 則后面的版本號歸零 。
3.3 包管理配置文件
npm 規定 , 在項目根目錄中 , 必須提供一個叫做 package.json 的包管理配置文件 。 用來記錄與項目有關的一些配置信息 。 例如:
    項目的名稱、版本號、描述等
    項目中都用到了哪些包
    哪些包只在開發期間會用到
    那些包在開發和部署時都需要用到
1、多人協作的問題
遇到的問題:第三方包的體積過大 , 不方便團隊成員之間共享項目源代碼 。
解決方案:共享時剔除node_modules
2、如何記錄項目中安裝了哪些包
在項目根目錄中 , 創建一個叫做 package.json 的配置文件 , 即可用來記錄項目中安裝了哪些包 。 從而方便剔除 node_modules 目錄之后 , 在團隊成員之間共享項目的源代碼 。
注意:今后在項目開發中 , 一定要把 node_modules 文件夾 , 添加到 .gitignore 忽略文件中 。
3、快速創建 package.json
npm 包管理工具提供了一個快捷命令 , 可以在執行命令時所處的目錄中 , 快速創建 package.json 這個包管理配置文件:

推薦閱讀