node.js 05 包管理 npm

上一篇:node.js 04 http server 初步

我們之前在安裝node.js的時候,默認已經安裝npm工具。

npm工具是什么?全稱 node package management, 是node.js的包管理工具。那么,對于一個編程語言來講,包是什么?

包 Package 是什么?

如果你對Java有一定了解,你一定知道Jar包,那么node.js中包的概念跟java中的jar包概念類似。

對于企業開發來講,如果需要提升效率,就需要把很多公共的模塊進行封裝,就形成了包的概念。而對于編程語言來講,為了推廣語言本身,也需要提供強大的包的功能。這樣對于開發人員來講,很多功能的實現只需要引入相關的包,在包的基礎上再做開發就好了。避免了不必要的工作,提升了效率。

以Java為例,業界有兩個包相關的依賴管理工具,Marven和Gradle。只需要相關文件中寫入需要引入的jar包,運行命令后會,會自動下載這些jar包。很多年前,我記得開發的時候,大家都是手動下載了jar包放在一個目錄,然后包含在項目中。

那么后面為什么不行了?因為需要加載的jar包實在太多了,而且每個包還有版本,不同的包不同的版本還不兼容;當你需要使用一個包時,這個包還需要另外一個包作為依賴。這時候大家發現手動下載已經根本行不通了。于是,包管理工具應運而生。在java中,只需要將所需要的jar包寫在相關文件中,運行Marven

或者Gradle, 就會自動下載這些jar包,依賴問題也會一并解決。

包從哪里來?

包存在倉庫repository里,倉庫在哪?誰在維護倉庫?誰能保證我從倉庫中下載的文件就一定是正確的,會不會有惡意代碼?

在講npm之前,我還是以java為例,畢竟java出現的早,可能朋友們對java比較了解。比如Marven有自己的倉庫,Spring也有自己的倉庫。國內連國外網絡會比較處理,像阿里也建了自己的倉庫,方便朋友們下載。

那么實際開發過程中,對于企業而言,很多時候會建自己的內部倉庫,這樣就不用考慮網絡問題了。

什么是npm?


npm

上面是npm官網 (https://www.npmjs.com/)關于自己的介紹。是一個開源的node.js包管理工具。非常重要的一點是,npm.Inc這個公司在維護所有的包,所以我們不用擔心通過npm下載的包會有什么問題。

npm常用命令:

獲取npm版本

npm -v

安裝

npm install <package名稱>

這里有一個-g參數來控制是否為全局安裝。全局安裝的意思是指,當前安裝的包會安裝在node.js的全局包安裝路徑中,所有的node.js項目都可以使用。如果不加 -g ,安裝的包只能在當前的node.js項目中使用。

全局包安裝路徑顯示 (npm root -g)

D:\Projects>npm root -g

D:\Program Files\nodejs\node_global\node_modules

卸載

npm uninstall <package名稱>

如果需要全局卸載,也要加上-g 參數

更新

npm update <package名稱>

全局更新,同樣需要加上-g

包的描述 package.json

每個安裝好的包在根目錄下都有一個package.json文件,是整個包的描述。

package.json文件包含了很多信息,包括name, preferglobal, description, version, bugs, license, repository, keywords, dependencies等等。


package.json

其中的dependecies依賴關系指的是,當前的包所依賴的其他的包,由包的名稱和版本號組成。


dependencies

關于node.js包管理的信息就到這里,如果朋友們有什么問題,歡迎留言討論。

敬請關注,后面還會有更多的node.js更新。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 ...
    ihoey閱讀 6,264評論 2 36
  • NPM NPM 是隨同 Node 一起安裝的包管理工具,能解決 Node 代碼部署上的很多問題,常見的使用場景有以...
    heyi_let閱讀 2,605評論 0 2
  • 概要 64學時 3.5學分 章節安排 電子商務網站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,290評論 0 3
  • 免責聲明:此文章是轉載文章,這里給出原鏈接,以示尊重。原作者名稱:knqiufan原作者博客:https://bl...
    振禮碩晨閱讀 22,611評論 0 20
  • npm是什么 NPM的全稱是Node Package Manager,是隨同NodeJS一起安裝的包管理和分發工具...
    build1024閱讀 7,949評論 0 9