為什么下載第三方包時(shí)會(huì)安裝那么多其他的包
因?yàn)槲覀兿螺d的包還會(huì)依賴其他js框架倦卖,所有也需要下載。A依賴B,B依賴C,就像套娃一樣,所有才會(huì)下載那么多包钮惠。
package-lock.json是干嘛的,和package.json有什么關(guān)系
兩者都是記錄依賴項(xiàng)的七芭,但不同的是package.json
只記錄項(xiàng)目的依賴項(xiàng)素挽,也就是你直接用命令行下載的包,而package-lock.json
是對(duì)所有包狸驳,也就是node_modules
這個(gè)目錄中所有包的依賴信息(版本预明、下載地址)的保存。node_modules
這個(gè)目錄中下的所有包里也有package.json
文件耙箍,相當(dāng)于提取出來放在了一個(gè)文件中撰糠。
package-lock.json文件有什么用?
兩個(gè)目的:
- 不用單獨(dú)分析每個(gè)包中 package.json 的依賴項(xiàng)辩昆,會(huì)提高加載速度
- 鎖住依賴指定的版本號(hào)阅酪,防止重新下載時(shí),自動(dòng)更新到最新版本汁针。比如有個(gè)項(xiàng)目需要兼容ie8术辐,而且依賴于jquery,但只有1.x版本才兼容ie8施无,因此不能下載新的版本辉词。