为什么下载第三方包时会安装那么多其他的包
因为我们下载的包还会依赖其他js框架,所有也需要下载。A依赖B,B依赖C,就像套娃一样,所有才会下载那么多包。
package-lock.json是干嘛的,和package.json有什么关系
两者都是记录依赖项的,但不同的是package.json
只记录项目的依赖项,也就是你直接用命令行下载的包,而package-lock.json
是对所有包,也就是node_modules
这个目录中所有包的依赖信息(版本、下载地址)的保存。node_modules
这个目录中下的所有包里也有package.json
文件,相当于提取出来放在了一个文件中。
package-lock.json文件有什么用?
两个目的:
- 不用单独分析每个包中 package.json 的依赖项,会提高加载速度
- 锁住依赖指定的版本号,防止重新下载时,自动更新到最新版本。比如有个项目需要兼容ie8,而且依赖于jquery,但只有1.x版本才兼容ie8,因此不能下载新的版本。