npm中package.json與package-lock.json的區(qū)別

package.json在npm中實際用途參考:npm基本使用這篇文章恰聘,接下來主要講解package-lock.json用途以及與package.json的不同

npm 5以前沒有package-lock.json這個文件,需要保存依賴信息,每次安裝時都要加上--save參數(shù);npm5以后版本加入了package-lock.json文件。當(dāng)安裝包的時候浓体,不需要加上--save參數(shù),它會自動保存依賴信息,且會生成或更新package-lock.json這個文件亚情。

package-lock.json出現(xiàn)有啥用途呢?

當(dāng)我們需要下載某一個包的時候哈雏,比如:npm install art-template楞件,實際上不止下載了art-template一個包,還會下載art-template包的依賴包裳瘪,以及其依賴包所依賴的各種包土浸。查看art-template的package.json文件可以看到art-template的依賴包:

atr-template

所以當(dāng)我們刪除node_modules時,想要使用npm install通過package.json文件恢復(fù)項目中所使用的相關(guān)的包時彭羹,整體工作流程是:查詢package.json文件中要下載的包的下載地址黄伊,并下載,然后從當(dāng)前下載后的包的package.json文件去查詢還需要下載的依賴包皆怕,根據(jù)依賴包的地址再去下載依賴包毅舆。而這個查找的過程在有很多依賴包的情況下,下載的速度會明顯下降愈腾,而此時憋活,package-lock.json就派上了用途,這個文件保存了node_modules中所有的包(包括當(dāng)前下載的包以及依賴包)的信息:版本虱黄、下載地址(這個信息在一開始第一次安裝包時就寫入了package-lock.json文件中)悦即。這樣當(dāng)npm install 的時候直接從當(dāng)前文件根據(jù)下載地址直接下載,而不再每次都先下載當(dāng)前的包,再查詢當(dāng)前包的package.json文件再去下載辜梳。從而下載速度大大提升粱甫。

我們再來看一種情況:在實際項目開發(fā)過程中,并不是最新版本的包是適合于當(dāng)前項目的創(chuàng)建的作瞄,因此如果一個項目依賴了1.1.1版本茶宵,當(dāng)你重新npm install的時候其實會下載最新版本,也不是1.1.1宗挥,也這也并不是我們想要的結(jié)果乌庶,而我們的目的主要想要鎖住1.1.1這個版本,而package-lock.json這個文件在這個時候開始起作用契耿,其可以鎖定版本號瞒大,防止自動升級新版本,也就是說在package-lock.json中配置的版本號如果低于最新版本號搪桂,但是在npm install的時候也不會升級版本號透敌,從而讓package-lock.json文件名中的lock名副其實。

總結(jié):

package.json記錄的是當(dāng)前項目中你下載了哪些包(也即npm install xx 的包信息)踢械,記錄了你下載的包信息(地址酗电、版本號等),不包含依賴包信息裸燎。

package-lock.json文件記錄的是當(dāng)前項目中你下載了哪些包以及你下載的這些包的各種依賴包信息顾瞻,包括地址、版本號等德绿。主要作用有以下兩點:

  • 當(dāng)刪除node_module目錄時荷荤,想通過npm install恢復(fù)所有包時,提升下載速度移稳。
  • 鎖定版本號蕴纳,防止自動升級新版本
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市个粱,隨后出現(xiàn)的幾起案子古毛,更是在濱河造成了極大的恐慌,老刑警劉巖都许,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稻薇,死亡現(xiàn)場離奇詭異,居然都是意外死亡胶征,警方通過查閱死者的電腦和手機塞椎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來睛低,“玉大人案狠,你說我怎么就攤上這事服傍。” “怎么了骂铁?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵吹零,是天一觀的道長。 經(jīng)常有香客問我拉庵,道長灿椅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任钞支,我火速辦了婚禮阱扬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘伸辟。我一直安慰自己,他們只是感情好馍刮,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布信夫。 她就那樣靜靜地躺著,像睡著了一般卡啰。 火紅的嫁衣襯著肌膚如雪静稻。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天匈辱,我揣著相機與錄音振湾,去河邊找鬼。 笑死亡脸,一個胖子當(dāng)著我的面吹牛押搪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播浅碾,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼大州,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了垂谢?” 一聲冷哼從身側(cè)響起厦画,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎滥朱,沒想到半個月后根暑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡徙邻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年排嫌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹃栽。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡躏率,死狀恐怖躯畴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情薇芝,我是刑警寧澤蓬抄,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站夯到,受9級特大地震影響嚷缭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜耍贾,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一阅爽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧荐开,春花似錦付翁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至能扒,卻和暖如春佣渴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背初斑。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工辛润, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人见秤。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓砂竖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鹃答。 傳聞我的和親對象是個殘疾皇子晦溪,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容