理一理 npm, yarn, package.json, pakage-lock.json, yarn.lock 之間的關(guān)系 (二)

本文轉(zhuǎn)載自我的個(gè)人博客,原文請移步

在上一篇文章中,我們介紹了npm,以及 package.jsonpakage-lock.json的所用。還有一個(gè)與npm一樣用的很多的包管理工具:yarn

npm的第五次大版本更新后,也就是5.X.X之后,無論是從功能上還是從使用方法上,npmyarn其實(shí)很相似了,所以我們這里不花過多的筆墨闡述誰優(yōu)誰劣,而是理一理package.jsonpakage-lock.jsonyarn.lock 這三者之間的關(guān)系。

如果在一個(gè)項(xiàng)目中我們同時(shí)使用了npmyarn(不建議這樣做),npmyarn安裝的包都會(huì)被記錄在package.json中。但是他們會(huì)有各自的dependency lock文件,npm的是pakage-lock.jsonyarn的是yarn.lock

如果你的項(xiàng)目中同時(shí)有pakage-lock.jsonyarn.lock,你可以選擇提交其中的任意的一個(gè)。如果你希望他人通過npm來進(jìn)行依賴包的安裝,你應(yīng)該選擇提交pakage-lock.json;如果你希望他人通過yarn來進(jìn)行依賴包的安裝,你應(yīng)該提交yarn.lock。如果你希望他人自行決定是使用npm還是yarn,你應(yīng)該提交pakage-lock.jsonyarn.lock這兩個(gè)文件,但是這有可能造成不同步的問題。

yarn1.7.0版本開始,yarn import命令可以利用pakage-lock.json來生成依賴包,詳見官方文檔。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。