1. 程式人生 > >Node.js npm 詳解

Node.js npm 詳解

maven鏡像 cache 需要 nag ebr target 建立 npm bin

Node.js npm 詳解

一、npm簡介

安裝npm請閱讀前輩的文章,很詳細的介紹。

npm的全稱:Node Package Manager.

(1)通俗的理解

其實從字面意思就可以理解這個產品有什麽作用翻譯為“Node包管理器”。對,就是Node的包的一個管理工具,目前我嘗試的有

  1. 下載並安裝包(npm install [pkg])
  2. 升級安裝包(npm update [pkg])
  3. 卸載安裝包(npm uninstall/rm [pkg]),可以指定卸載包的版本號 …

其實這些命令很簡單,常用的必須記住,不常用的查詢即可,這才是比較好的學習知識方式。

在終端輸入:

//查看npm擁有的全部命令
$ npm --help
$ npm help
//查看某一個npm命令的詳細用法
$ npm <command> --help
$ npm help <command>

(2)專業的解釋

npm(Node Package Manager)是Node.js下的主流套件管理程式。它在Node.js v0.6.x版本之後,內建於Node系統。通過npm可以協助開發者安裝、卸載、刪除、更新Node.js套件,並且可以通過npm發布自己的插件。

二、類似的產品

其實學習一個產品,可以聯系其它產品,能夠更好的理解現在手頭的產品。第一次學習npm我的第一反應就是,很像linux/mac平臺的很多軟件,依賴管理的方式可以參考maven…當然相似性可以隨便聯想。

接下來,舉幾個例子吧,當然詳細了解可以查baidu && google。

  1. gem
  2. PyPL
  3. pear
  4. macPort
  5. Homebrew
  6. rem
  7. apt-get
  8. yum …

是不是很多都很熟悉?這樣對於npm的認識就不用局限於概念啦。

三、npm基礎功能

(1)npmrc文件介紹

首先介紹一下npmrc文件,這個文件是npm包管理器的配置文件。

與npmrc相關的三個文件:

  1. 用戶配置文件:~/.npmrc
  2. 全局配置文件:$PREFIX/npmrc
  3. npm內部配置文件:安裝npm的目錄下

下面仔細看一下npm config的配置。

(2)npm獲取配置的6種方式(優先級從高到低):

1.命令行參數

$ --proxy http://<server>:<port>

2.環境變量

以”npmconfig“為前綴的環境變量將會被認為是npm的配置屬性。 像Maven鏡像的概念,方便通信吧。

$ npm_config_proxy=http://<server>:<port>

3.用戶配置文件

//查看文件路徑
$ npm config get userconfig

//mac系統默認路徑
$HOME/.npmrc

4.全局配置文件

//查看文件路徑
$ npm config get globalconfig

//mac系統默認路徑
/usr/local/etc/npmrc

3,4中輸入終端的效果如圖:

技術分享

5.內置配置文件

安裝npm的目錄下的npmrc文件。

6.默認配置

如果前5條均未設置,npm會使用默認配置參數。

(4)npm install

“安裝指定包”:這個命令不難,但是也有需要註意的地方,就是安裝的模式有兩種,在後面會單獨講解。

如果不知道包的具體名稱,可以在http://search.npmjs.org上進行搜索。

(5)npm uninstall

“卸載指定包”:在help的時候,會給你推薦npm rm 這個命令,uninstall會卸載掉包的依賴,rm。

(6)npm ls

查看安裝的包清單,其實和linux的ls命令很像,可以跟很多參數,詳情可以使用

$ npm help ls

搜索包的詳細信息,比如我們搜索express試試。第一次搜索,會提示建立索引,需要耐心等待片刻,大家測試的時候不要就關掉啦終端。

npm WARN Building the local index for the first time, please be patient

技術分享

其實看上去復雜,只是東西有點大,不過主要包含以下6個部分:

  1. 名稱
  2. 描述
  3. 作者
  4. 發布時間
  5. 發布版本號
  6. 關鍵字

(8)npm update

更新安裝的包

更多API可以查看官網:https://npmjs.org/doc/

四、版本號的知識。

在node.js中的package.json配置文件中,我們需要配置版本號,比如0.1.2

第一位數字:主版本號

第二位數字:子版本號

第三位數字:補丁版本號

找到一個不錯的介紹軟件項目版本號的文章

軟件項目版本號的命名規則及格式

為什麽要解釋這個呢?肯定是有用,因為npm安裝的時候是可以選擇版本號的,有點理解會比較好吧,至少我是這麽認為的。

安裝Node和npm前半部分的配置可以參考之前我的兩篇文章:

  1. Hello Node

四、本地模式和全局模式

如果你了解環境變量裏面的,用戶變量和系統變量。可以做一個類比進行理解。當然,windows上面的環境變量概念比較好理解。

1. 本地模式

本地模式下安裝包的特點

  • 不會寫入PATH變量(也就是環境變量,無法在全局引用該安裝包,不能在終端直接使用)
  • 能夠在不同的node_modules目錄,安裝不同版本的安裝包
  • 能夠通過require()來引入安裝包

使用“npm install [@]”安裝的包,默認會安裝在當前目錄的“node_modules”目錄下(如果沒有該目錄,在執行命令的時候,會自動幫你創建)。

//專業的寫法
./node_modules

(1)默認采用本地模式安裝

npm install <pkg>

(2)信息寫入package.json文件

npm install <pkg> --save

這個命令在安裝包的同時,將信息寫入package.json。

@version表示指定安裝包的版本號,是可選項目,默認安裝最新版本。

項目路徑中如果有package.json文件,使用npm install方法就可以根據dependencies配置安裝所有的依賴包。

如果這樣配置,當代碼提交到github時,就不用提交node_modules這個文件夾。

2. 全局模式

全局模式安裝包的特點

  • 不需要重復安裝
  • 不能使用require()引入
  • 會寫入PATH,並建立軟鏈接,使用命令行的方式使用
  • 不方便指定特定的版本運行

(1)采用全局模式安裝

npm install -g <pkg>

(3)在mac中全局的目錄

//安裝包所在目錄
/usr/local/lib/node_modules/
//運行命令的軟鏈接所在目錄
/usr/local/bin

(4)查看安裝包路徑

//查看當前包的安裝路徑
npm root
//查看全局的包的安裝路徑
npm root -g

(5)設置全局模式安裝目錄

//設置後,以全局模式將會安裝在此目錄中,不過需要手動加入PATH,切記
npm config set prefix <global dir>
//設置npm緩存文件的存放路徑
npm config set cache <cache dir>

(6)查看默認模式

//默認返回:false
$ npm get global
$ npm config get global

(7)設置為默認以全局模式安裝,就不用每次加”-g”參數啦。

$ npm set global=true
$ npm config set global=true

Node.js npm 詳解