這篇文章主要介紹“Node包管理器npm和yarn怎么使用”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Node包管理器npm和yarn怎么使用”文章能幫助大家解決問題。
創(chuàng)新互聯(lián)建站長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為洮北企業(yè)提供專業(yè)的網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計,洮北網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
npm是什么
使用npm
前首先要了解什么是npm
,npm
是Node
的開源倉庫,并且是全球最大的開源倉庫
截至2020年3月17日,npm
為大約1200萬開發(fā)人員提供了130萬個軟件包,這些開發(fā)人員每月下載這些軟件包達(dá)750億次
要想去下載使用npm
倉庫里面的資源可以使用npm的指令
(npm
開頭的,如npm i axios
下載axios
)或使用其它第三方的指令(第三方的Node包管理器
),如yarn等
官方說法:
npm
是NodeJS
的包管理和分發(fā)工具包管理就體現(xiàn)在它是個
NodeJS
的倉庫,存放并管理著NodeJS
的各種軟件包分發(fā)工具就體現(xiàn)在使用
npm的指令
去下載npm
倉庫里的包
在我們配置NodeJS
環(huán)境時,npm指令模塊
是隨著NodeJS
一起安裝的,我們可以通過終端運行npm -v
查看安裝的版本:
但如果默認(rèn)安裝的npm
版本太老,你也可以自己手動安裝更新npm:
npm i npm@latest -g
@latest
代表安裝最新版本,-g
代表全局安裝,這些npm
指令將在后面講到
上面可以發(fā)現(xiàn)一個神奇的事情,我們正在通過npm
安裝npm
,自己安裝自己?
這其實很好理解,npm的指令模塊
也是作為一個包存放于npm
這個倉庫中的,并且這個包的名字就叫npm
所以我們一般稱呼的npm都只是指npm的這個指令模塊(這個名為npm的包)
但其實
npm
這個詞即代指了npm指令模塊
,也代指了npm
這個NodeJS
開源倉庫本身
所以就有了我們在npm
中(這個npm代表NodeJS的開源倉庫)下載npm
(這個npm代表名為npm的這個包,這個包是npm的指令模塊)的說法
npm常用指令
npm
的指令非常多,這里只列舉出常用的,更多信息可見npm官方文檔
npm init
:生成package.json
npm install
:下載package.json
中記錄的所有資源
npm install 包名
: 下載指定的包到當(dāng)前目錄下
npm uninstall 包名
: 卸載當(dāng)前目錄下指定的包
npm update 包名
:更新當(dāng)前目錄下指定的包,不加包名則更新當(dāng)前目錄下所有包
npm outdated 包名
:檢查當(dāng)前目錄下指定包是否過時,不加包名則檢查當(dāng)前目錄下所有包
npm info 包名
:獲取當(dāng)前目錄下包的詳細(xì)信息
npm list
:查看當(dāng)前目錄下安裝的所有包及其依賴并顯示版本號(list
可簡寫為ls
)
npm list 包名
:查看當(dāng)前目錄下安裝的指定包的版本號(list
可簡寫為ls
)
幾點補充:
install
可簡寫為i
,如:npm install axios
可簡寫為npm i axios
uninstall
可簡寫為un
在包名后加@
符可指定包的版本,如:npm i md5@1
下載1版本的md5,npm i md5@latest
表示下載最新版本的md5
npm
指令后綴
-g
:指定全局環(huán)境
npm
指令默認(rèn)是在當(dāng)前目錄下操作,加上-g
是指定在全局環(huán)境下操作,如上面提到的全局安裝npm最新版:npm i npm@latest -g
,這樣在任何目錄下都能使用npm
--save
可簡寫為-s
: 指定 生產(chǎn)環(huán)境下的依賴(記錄在dependencies
中)
npm5
版本之后默認(rèn)是--save
,如安裝在生產(chǎn)環(huán)境和開發(fā)環(huán)境都需要用到的axios:npm i axios -s
--save-dev
可簡寫為-D
:指定開發(fā)環(huán)境下的依賴(記錄在devDependencies
中)
如安裝生產(chǎn)環(huán)境下不需要使用的babel(僅在開發(fā)環(huán)境下使用的到):
npm i babel -D
--save-prod
可簡寫為-P
:與--save
相同
--save-optional
可簡寫為-O
:指定可選依賴(記錄在optionalDependencies
中)
--no-save
:不會記錄在package.json
中
關(guān)于
-g,--save,--save-dev
的具體作用和區(qū)別可看我的這篇文章:npm install -g/–save/–save-dev的區(qū)別
npm指令后綴也可以放到包名的前面:
npm i -g npm@latest
依賴包管理
在 npm
中,熟知的依賴是 :dependencies
和 devDependencies
除此之外,其實還有包括 :
peerDependencies
,
optionalDependencies
bundledDependencies / bundleDependencies
在內(nèi)的幾種依賴,這些都是在package.json
中進(jìn)行記錄的:
上面我們說npm指令后綴時提到了這幾種依賴,這里詳細(xì)說一下它們代表什么:
dependencies
和 devDependencies
peerDependencies
optionalDependencies
可選依賴,如果有一些依賴包即使安裝失敗,項目仍然能夠運行或者希望npm繼續(xù)運行,就可以使用
optionalDependencies
,另外optionalDependencies
會覆蓋dependencies
中的同名依賴包,所以不要在兩個地方都寫
bundledDependencies
/ bundleDependencies
打包依賴,
bundledDependencies
是一個包含依賴包名的數(shù)組對象,在發(fā)布時會將這個對象中的包打包到最終的發(fā)布包里,數(shù)組里面的包必須先在devDependencies
或dependencies
聲明過,否則打包會報錯
package.json中需要注意的包版本問題
通過npm
下載的所有包的版本信息都會記錄在package.json
中
在運行npm i
時就會根據(jù)package.json
中記錄的包信息進(jìn)行下載,它的下載規(guī)則如下:
包版本以^
開頭時(默認(rèn)情況),會鎖定大版本
// package.json "dependencies": { "md5": "^2.1.0" // ^開頭的 },
通過
npm i
將會安裝md5
2.x.x
的最新版本(2大版本下的最新版本),并不一定是2.1.0,還可能是2.3.0
包版本以~
開頭時,會鎖定到第二個大版本
// package.json "dependencies": { "md5": "~2.1.0" },
通過
npm i
將會安裝md5
2.1.x
的最新版本(2.1版本下的最新版本),并不一定是2.1.0,還可能是2.1.1
包版本為*
,會鎖定到最新版本
// package.json "dependencies": { "md5": "*" },
通過
npm i
將會安裝md5
的最新版本
包版本前不帶前綴,會鎖定到指定版本
// package.json "dependencies": { "md5": "2.1.0" },
通過
npm i
將會安裝md5
的2.1.0版本
解決npm速度慢的問題
因為npm
倉庫在國外,我們在國內(nèi)使用npm
指令下載這個國外倉庫的內(nèi)容速度會比較慢
這時我們就可以運行以下指令將npm
的倉庫源切換到國內(nèi)的淘寶鏡像(cnpm)的源:
npm config set registry https://registry.npmmirror.com
使用npm config get registry
查看當(dāng)前源:
往后再使用npm
時就會自動從國內(nèi)的淘寶鏡像倉庫下載了,速度就會很快
淘寶鏡像之前的源地址為http://registry.npm.taobao.org,現(xiàn)在更改為了http://registry.npmmirror.com,
但我們這樣通過修改npm
的配置進(jìn)行源的切換難免會有點麻煩,我們可以全局安裝一個nrm
來幫助我們快速的切換npm
源
使用nrm快速切換npm源
全局安裝nrm:
npm install -g nrm
執(zhí)行nrm ls
可查看可切換的npm源:
使用npm use
切換源,如切換到淘寶源:nrm use taobao
使用nrm test 源名
測試相應(yīng)源的響應(yīng)時間:
可以看到淘寶源的響應(yīng)速度要比npm
的默認(rèn)源快很多
中國npm鏡像:cnpm
cnpm
是一個完整的npmjs.org鏡像,可以用它代替官方版本
cnpm
與官方版本的同步頻率為10分鐘一次,cnpm官網(wǎng)
下載cnpm
:
npm install -g cnpm --registry=https://registry.npmmirror.com
cnpm就是淘寶鏡像,上面我們使用淘寶鏡像源只是將npm
的源更改為淘寶鏡像(cnpm
)的源(這個源其實就是指倉庫的地址),之后還是通過npm
指令進(jìn)行使用
而這里是直接下載cnpm
這個完整鏡像,之后就可以使用cnpm
指令而不是npm
指令:
cnpm installcnpm i axios -g // ....
cnpm
的指令與npm
的指令完全相同,使用時直接使用cnpm代替npm就行
yarn是Facebook發(fā)布的一款依賴管理工具,它比npm
更快、更高效
安裝:
npm install -g yarn
更新yarn:
yarn set version latest yarn set version from sources
優(yōu)點
速度超快yarn
緩存了每個下載過的包,所以再次使用時無需重復(fù)下載。 同時利用并行下載以最大化資源利用率,因此安裝速度更快
超級安全
在執(zhí)行代碼之前,yarn
會通過算法校驗每個安裝包的完整性
yarn常用指令
yarn init
:初始化項目,生成package.json
文件,生成步驟與npm init
大致相同
yarn help
:顯示命令列表
yarn install
:下載package.json
中記錄的所有資源,可簡寫為yarn
yarn add 包名
: 下載指定的包到當(dāng)前目錄下
yarn remove 包名
: 卸載當(dāng)前目錄下指定的包
yarn upgrade 包名
:更新當(dāng)前目錄下指定的包,包名后可加@指定版本號
來指定需要更新到的版本
yarn
指令后綴
--dev
:指定開發(fā)環(huán)境下的依賴(devDependencies
),簡寫為-D
--peer
:指定核心依賴(peerDependencies
)
--optional
:指定可選依賴(optionalDependencies
)
關(guān)于“Node包管理器npm和yarn怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。
網(wǎng)站標(biāo)題:Node包管理器npm和yarn怎么使用
本文網(wǎng)址:http://jinyejixie.com/article20/jjpcjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站設(shè)計、微信小程序、網(wǎng)站改版、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)