首先,這兩個都屬於js包管理工具,均可以安裝包或者模塊
yarn 是由facebook、google等聯合開發推出的
區別:vue
npm 下載包的話 好比npm install
它是按照包的排序,也就是隊列挨個下載,一個下載完成後,再下載另外一個
yarn是將要下載的包進行同時下載
yarn 在下載模塊或包時,命令行輸出的信息更加簡潔
npm版本5.0 以後,會自帶package.lock.json 文件,該文件主要描述了你項目中安裝的包都是哪個版本,你再進行npm install 的話,會安裝指定版本的包。
yarn 一直都有lock 文件,功能和npm 的package.lock.json差很少。
命令不一樣
npm install == yarn
npm isntall vue == yarn add vue
npm uninstall vue == yarn remove vue
npm update == yarn upgradenode
按照以往,個人步驟都是:react
git clone xxx npm install npm run dev
這時,JJ給我來了下面一段git
git clone xxx yarn yarn start
「咦,yarn是什麼鬼?難道npm更高級的替代品?爲何要替代npm?難道有什麼好的地方?」,心裏一連串的問題冒出來。我就默默的問了一下JJ:「yarn是跟npm同樣的東西嗎?」,「嗯。」JJ忙碌的敲着鍵盤,顯然這個問題不值得繼續問下去了。我也默默的把剛纔腦子裏一連串的問題記了下來。shell
「Yarn是由Facebook、Google、Exponent 和 Tilde 聯合推出了一個新的 JS 包管理工具 ,正如官方文檔中寫的,Yarn 是爲了彌補 npm 的一些缺陷而出現的。」這句話讓我想起了使用npm時的坑了:npm
npm install
的時候巨慢。特別是新的項目拉下來要等半天,刪除node_modules,從新install的時候依舊如此。"5.0.3", "~5.0.3", "^5.0.3"
「5.0.3」表示安裝指定的5.0.3版本,「~5.0.3」表示安裝5.0.X中最新的版本,「^5.0.3」表示安裝5.X.X中最新的版本。這就麻煩了,經常會出現同一個項目,有的同事是OK的,有的同事會因爲安裝的版本不一致出現bug。json
帶着這些坑,我開始瞭解Yarn的優點及其解決的問題。緩存
npm | yarn |
---|---|
npm install | yarn |
npm install react --save | yarn add react |
npm uninstall react --save | yarn remove react |
npm install react --save-dev | yarn add react --dev |
npm update --save | yarn upgrade |
有了yarn的壓力以後,npm作了一些相似的改進。網絡
在npm5.0以前,yarn的優點特別明顯。可是在npm以後,經過以上一系列對比,咱們能夠看到 npm5 在速度和使用上確實有了很大提高,值得嘗試,不過尚未超過yarn。工具
綜上我我的的建議是若是你已經在我的項目上使用 yarn,而且沒有遇到更多問題,目前徹底能夠繼續使用。但若是有兼容 npm 的場景,或者身處在使用 npm,cnpm,tnpm 的團隊,以及尚未切到 yarn 的項目,那如今就能夠試一試 npm5 了。
參考文章
原文:https://blog.csdn.net/weixin_39458031/article/details/86254375
原文連接:https://www.jianshu.com/p/254794d5e741