package-lock.json文件:
如上图所示,body-parser的requires与dependencies字段中都记录了依赖,他们有什么不同呢?为什么有些依赖仅在requires里,而有些既在requires又在dependencies里呢?
有两个依赖包A和B,A依赖于C@1.0,B依赖于C@2.0,这时NPM就会安装两个不同版本的C,其中一个会被安装在根目录的node_module中,另外一个则安装在当前依赖包的node_module中:
package.json
node_modules
/A
/B
/node_modules
/C@2.0
/C@1.0
而package-lock.json里的requires与dependencies,就是这种行为的数据化。requires表示所有需要安装的依赖,而dependencies则是把其中需要安装在当前目录node_modules里的依赖包摘出来。