package.json
package.json是通过npm
init创建时生成的,package.json文件中会记录项目中所需要的模块。记录的只是每个模块的基本信息。模块名称和大版本信息。
例如axios在package.json中
package-lock.json
在使用npm install的时候会自动生成一个package-lock.json的文件,package-lock.json文件则会记录每个模块的详细信息,如模块的具体版本号和各个模块所依赖的子模块的信息。
而axios在package-lock.json中
npm install的过程大致就是从package.json中读取所有的依赖信息,然后再与node_modules中已经安装的依赖进行对比,如果没有则通过package-lock.json获取相应版本号下载安装.如果已经存在则会通过package-lock.json检查更新。
关于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下的。