package.json: 主要用来定义项目中须要依赖的包node
package-lock.json: 在 npm install
时候生成一份文件,用以记录当前状态下实际安装的各个npm package的具体来源和版本号。npm
'^' : 放在版本号以前,表示向后兼容依赖,说白了就是在大版本号不变的状况下,下载最新版的包json
项目中引入的包版本号以前常常会加^号,每次在执行npm install以后,下载的包都会发生变化,为了系统的稳定性考虑,每次执行完npm install以后会对应生成package-lock文件,该文件记录了上一次安装的具体的版本号,至关因而提供了一个参考,在出现版本兼容性问题的时候,就能够参考这个文件来修改版本号便可。单元测试
一个node package有两种依赖,一种是dependencies一种是devDependencies,其中前者依赖的项该是正常运行该包时所须要的依赖项,然后者则是开发的时候须要的依赖项,像一些进行单元测试之类的包。测试
若是你将包下载下来在包的根目录里运行spa
npm install
//默认会安装两种依赖,若是你只是单纯的使用这个包而不须要进行一些改动测试之类的,能够使用
npm install --production
//只安装dependencies而不安装devDependencies。
复制代码
若是你是经过如下命令进行安装code
npm install packagename
//那么只会安装dependencies,若是想要安装devDependencies,须要输入
npm install packagename --dev
复制代码
devDependencies : 用于本地环境开发时候。 dependencies : 用户发布环境ci
devDependencies是只会在开发环境下依赖的模块,生产环境不会被打入包内。经过NODE_ENV=developement或NODE_ENV=production指定开发仍是生产环境。 而dependencies依赖的包不只开发环境能使用,生产环境也能使用。其实这句话是重点,按照这个观念很容易决定安装模块时是使用--save仍是--save-dev。开发