npm模塊安裝機制簡介


npm是node的模塊管理器,功能及其強大,它是node獲得成功的重要原因之一。

正因為有了nom,我們只要一行命令,就能安裝別人寫好的模塊。

$ npm install

本文介紹npm模塊安裝機制的細節,以及如何解決安裝速度慢的問題

一。從npm install說起

npm install 命令用來安裝模塊到node_modules目錄;

$ npm install <packageName>

安裝之前,npm install 會先檢查,node_modules中是否已經存在指定模塊,如果存在,就不重新安裝了,即使遠程倉庫已經有了一個新版本,也是如此。

如果你希望,一個模塊不管是否安裝過,npm都要強制重新安裝,可以用 -f 或 -force 參數

$ npm install <packageName> --force

二。npm update

如果想更新已安裝模塊,就要用到 npm update 命令

$ npm update <packageName>

它會先到遠程倉庫查詢最新版本,然后查詢本地版本,如果本地版本不存在,或者遠程版本較新,就會安裝。

三。registry

npm update 命令是怎么知道每個模塊的最新版本呢?

答案是npm模塊倉庫提供了一個查詢服務,叫做regisrty,以 npmjs.org 為例,它的查詢服務網址是 https://registry.npmjs.org/ 。

這個網址后面跟上模塊名,就會得到一個JSON對象,里面是該模塊所有版本信息,比如,訪問https://registry.npmjs.org/react,就會看到 react 模塊所有版本的信息。

它跟下面命令的效果是一樣的。

$ npm view react

# npm view 的別名
$ npm info react
$ npm show react
$ npm v react

registry 網址的模塊名后面,還可以跟上版本號或標簽,用來查詢某個具體版本的信息,比如,訪問 https://registry.npmjs.org/react/v0.14.6 ,就可以看到 react 的0.14.6版本

返回的JSON對象里面,有一個dist.tarball屬性,是該版本壓縮包的網址

dist: {
  shasum: '2a57c2cf8747b483759ad8de0fa47fb0c5cf5c6a',
  tarball: 'http://registry.npmjs.org/react/-/react-0.14.6.tgz' 
},

到這個網址下載壓縮包,在本地解壓,就得到了模塊的源碼,npm installnpm update命令,都是通過這種方式安裝模塊的。

四,緩存目錄

npm install 或 npm update 命令,從 registry 下載壓縮包之后,都存放在本地的緩存目錄

這個緩存目錄,在Linux或Mac默認是用戶主目錄下的.npm目錄,在 Windows 默認是%AppData%/npm-cache。通過配置命令,可以查看這個目錄的具體位置。

$ npm config get cache
$HOME/.npm

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM