package.json与package.lock.json区别
package.json是通过npm init创建时生成的
package-lock.json是在npm install的时候创建的
npm install的过程大致就是从package.json中读取所有的依赖信息,然后再与node_modules中已经安装的依赖进行对比,如果没有则通过package-lock.json获取相应版本号下载安装.如果已经存在则会通过package-lock.json检查更新。
"dependencies": {
"fastclick": "^1.0.6",
"jssha": "^2.3.1",
"lodash.get": "^4.4.2",
"normalize.css": "^8.0.0",
"number-precision": "^1.3.1",
},
^与~的区别
都是向后(最新)兼容
1,^ 表示 不更新大版本但是可以更新次要版本与小版本 注意^会忽视版本号开头为0的数字,也就是说"axios":"0.19.0"的范围应该在>=0.19.0和<0.20.0之间)
比如 一个npm的版本是 2.0.1,
- 若是有更新2.9.3 ,那么当没有依赖的时候 安装依赖时会自动安装2.9.3版本
- 若是有更新3.9.3 ,那么当没有依赖的时候 安装依赖时不会安装3.9.3版本
2, ~ 表示 不更新大版本和次要版本但是可以更新小版本
比如 一个npm的版本是 2.0.1, - 若是有更新2.0.3 ,那么当没有依赖的时候 安装依赖时会自动安装2.0.3版本
- 若是有更新2.9.3 ,那么当没有依赖的时候 安装依赖时不会自动安装2.9.3版本