之前一直都用的npm install或cpmp install安裝依賴,後來又被很多人推薦yarn,似乎yarn要比npm和cpmp要可靠很多,但不知道其原因,查了許多相關的信息,但並不具說服力。求問大神現身幫忙解惑?
业精于勤,荒于嬉;行成于思,毁于随。
npm:npm 是 node 官方自帶的套件管理,一些個人開發的套件都可以透過 npm 的相關命令進行上傳,其他人則透過對應的命令進行下載。
cnpm:因為國內防火牆的原因,透過npm 下載內容會遇到失敗或速度慢的問題,taobao 就同步了一套所有npm 上所有的包的國內鏡像,因為在國內的原因,所以國內下載速度非常快,除了不能透過cnpm 發布包,其他與npm 的命令沒有任何區別。
yarn:它與 npm 最主要的區別主要體現在 yarn.lock 上面。如果專案根目錄下沒有 yarn.lock 的话,就会新建这么一个文件,并且锁定对应包的版本,如果当前项目根目录下有 yarn.lock 的話,就會安裝 yarn.lock 裡麵包的版本,而透過 npm 套件安裝的版本,除非你 package.json 裡面是寫死的,否則是會有動態變化的風險。其次yarn 能透過離線安裝,而且速度會快一些。
yarn.lock
npm:npm 是 node 官方自帶的套件管理,一些個人開發的套件都可以透過 npm 的相關命令進行上傳,其他人則透過對應的命令進行下載。
cnpm:因為國內防火牆的原因,透過npm 下載內容會遇到失敗或速度慢的問題,taobao 就同步了一套所有npm 上所有的包的國內鏡像,因為在國內的原因,所以國內下載速度非常快,除了不能透過cnpm 發布包,其他與npm 的命令沒有任何區別。
yarn:它與 npm 最主要的區別主要體現在 yarn.lock 上面。如果專案根目錄下沒有
yarn.lock
的话,就会新建这么一个文件,并且锁定对应包的版本,如果当前项目根目录下有yarn.lock
的話,就會安裝 yarn.lock 裡麵包的版本,而透過 npm 套件安裝的版本,除非你 package.json 裡面是寫死的,否則是會有動態變化的風險。其次yarn 能透過離線安裝,而且速度會快一些。