什么是全局安裝
安裝位置
全局安裝方式是鍵入命令:npm install gulp -g 或 npm install gulp --global驮肉,其中參數(shù) -g 的含義是代表安裝到全局環(huán)境里面侣集,包安裝在 Node 安裝目錄下的 node_modules 文件夾中,一般在 \Users\用戶名\AppData\Roaming\ 目錄下(linux 在 /usr/local 目錄下)误趴,可以使用 npm root -g 查看全局安裝目錄。-
調(diào)用方式
全局安裝后可以供命令行使用,用戶可以在命令行中直接運(yùn)行該組件包支持的命令屯烦,如下圖全局安裝 gulp 后的 cmd 文件,和 Node 的執(zhí)行文件 node.exe 在同一個(gè)文件夾下房铭。
注意:全局安裝并不意味著可以從任何地方通過(guò) require() 的方式引用驻龟。
什么是本地安裝
安裝位置
本地安裝方式是鍵入命令:npm install gulp 或 npm install gulp --save-dev 等,其中參數(shù) --save-dev 的含義是代表把你的安裝包信息寫(xiě)入 package.json 文件的 devDependencies 字段中缸匪,包安裝在指定項(xiàng)目的 node_modules 文件夾下翁狐。調(diào)用方式
本地安裝后可以直接通過(guò) require() 的方式引入項(xiàng)目中 node_modules 目錄下的模塊。
僅全局安裝足夠嗎
在 js 實(shí)例代碼中凌蔬,默認(rèn)下 node.js 會(huì)在 NODE_PATH 和目前 js 所在項(xiàng)目下的 node_modules 文件夾下去尋找模塊露懒,因此,如果只是全局安裝砂心,不能直接通過(guò) require() 的方式去引用模塊懈词,需要手動(dòng)解決包路徑的配置問(wèn)題,當(dāng)然你也可以復(fù)制全局安裝的 node_modules 文件夾到項(xiàng)目下辩诞,還有就是可以選擇將環(huán)境變量的 NODE_PATH 設(shè)置為 C:\Program Files\nodejs坎弯。
對(duì)于包的更新不好管理,可能你需要為每個(gè)包重新命名译暂,如 gulp@3.8.1抠忘、gulp@3.9.1...,為了區(qū)別不同項(xiàng)目使用指定的包外永,保證模塊之間的相互依賴(這塊下面會(huì)介紹)崎脉,區(qū)別每個(gè)項(xiàng)目正常運(yùn)行。
因此伯顶,不推薦只全局安裝荧嵌。
本地安裝的重要性
本地安裝利于管理版本,保證不同版本包之間的相互依賴砾淌。
舉個(gè)例子
包版本為:
A(0.0.1) 依賴 B(0.0.2)啦撮,B(0.0.1) 依賴 C(0.0.3)
一段時(shí)間原作者更新后,包版本為:
A(1.0.1) 依賴 B(1.0.0)汪厨,B(1.0.0) 依賴 C(1.0.0)
每一次的更新可能帶來(lái)不一樣的功能赃春,在多人合作、發(fā)布模塊到 npmjs 社區(qū)劫乱、上傳到 github 給其他人使用時(shí)织中,保留模塊的版本信息(通過(guò) package.json)可用于下載指定的版本號(hào)顯得特別重要锥涕。
本地安裝可以讓每個(gè)項(xiàng)目擁有獨(dú)立的包,不受全局包的影響狭吼,方便項(xiàng)目的移動(dòng)层坠、復(fù)制、打包等刁笙,保證不同版本包之間的相互依賴破花,這些優(yōu)點(diǎn)是全局安裝難以做到的。
另外疲吸,本地安裝包對(duì)于項(xiàng)目的加載會(huì)更快座每。
有優(yōu)點(diǎn)也少不了缺點(diǎn),如每次新項(xiàng)目都要本地安裝所依賴的包摘悴,安裝包時(shí)間相對(duì)較長(zhǎng)峭梳,一來(lái)是包太大導(dǎo)致下載慢;二是浪費(fèi)了硬盤(pán)空間蹂喻,不過(guò)現(xiàn)在電腦硬盤(pán)動(dòng)不動(dòng)就幾個(gè)T葱椭,你還會(huì)在意節(jié)省這點(diǎn)空間嗎?