1、package.json是在对项目文件夹时候执行npm init时创建身生成的,package.json记录的是项目所需要的模块。记录的是每个模块的基本信息,模块的名称和大版本信息。
2、package-lock.json是在执行npm install时候自动生成的,package-lock.json记录的是每个模块的详细的信息,比如模块的具体版本信息以及各个模块所依赖子模块的信息。
npm install的过程就是先从package.json中读取所有的依赖信息,然后再与node_modules中已经安装的依赖进行对比,如果没有则通过package-lock.json获取相应版本号下载安装.如果已经存在则会通过package-lock.json检查更新。进行更新的原则就是其范围是在package.json中对应安装包版本所容纳的版本。^就是指兼容该版本以后的小版本而不更新大版本,如上图package.json所示,"vue":"^2.5.2"也就是指范围应该在>=2.5.2和<3.0.0之间(tips:网上大多数帖子说的比较笼统,而参考其中的一篇帖子大致就是,^会忽视版本号开头为0的数字,也就是说"axios":"0.19.0"的范围应该在>=0.19.0和<0.20.0之间)
package.json中dependencies和Devdependencies的区别:
dependencies是生产环境所需要的依赖如vue,elementUI,axios等。
npm install ... --save 通过--save的方式来保存到dependencies中复制代码
而Devdependencies是开发环境所需要的依赖如webpack,babel-loader等。Devdependencies只存在于开发阶段,也就是说项目打包过后不会用到这些依赖。
npm install ... --save-dev 通过--save-dev的方式来保存到Devdependencies中复制代码
所以在浏览或者使用其他人项目的时候我们也就可以进行选择性的安装依赖来节省时间。npm install是将package.json下面的所有依赖报全部进行安装,而npm install --production则只是安装dependencies下的依赖而不安装Devpendecies下的。
网友评论