// package.josn
{
"name": "jss-admin",
"version": "1.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve --env=test --proxy-config proxy.config.json",
"build": "ng build --env=test --prod --build-optimizer",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/compiler": "^5.2.0",
"@angular/core": "^5.2.0"
},
"devDependencies": {
"@angular/cli": "~1.7.3",
"@angular/compiler-cli": "^5.2.0",
"@types/bootstrap": "^4.0.1",
"tslint": "~5.9.1",
"typescript": "~2.5.3"
}
}
这是一个package.json,其中的dependencies意为附属品,在此表示依赖之意。
dependencies表示最终构建的项目里需要用到的依赖,dependencies表示生产环境需要的依赖,devDependencies表示开发、构建这个过程中需要的依赖。如炒菜需要盐和铁勺,前者是dependency,后者是devDependency。
注意到dependencies和devDependencies中的版本号前面的修饰符,^和~,这二者的区别是什么呢?
github提出语义化版本规范Semver。具体细节如下:
- 版本用形如 主版本号.次版本号.修订号 的三个数字表示,即major.minor.patch
- 主版本号(major):当你做了不兼容的 API 修改,如 angular1.x.x=>angular2.0.0
- 次版本号(minor):当你做了向下兼容的功能性新增,可以理解为Feature版本,如angular1.5.5增加了新功能,发布1.6.0
-
修订号(patch):当你做了向下兼容的问题修正,可以理解为Bug fix版本。如angular1.5.4修改了bug,发布angular1.5.5。
这三个数字之后,还可以用三个修饰符,alpha、beta、rc,分别表示内测版本、公测版本、正式版本的候选版本。在正式版本发布前,如需发布先行版本,则可使用这三个修饰符。如React的版本发布日志:
3649824190-5ad41542bc553_articlex.png
^表示主版本号不变,
~表示要保证次版本号不变,
"jquery": "^2.1.0", //安装的时候就会下载2.x.x的最新版,即2.2.4
"jquery": "~2.1.0", //安装的时候就会下载2.1.x的最新版,即2.1.4
网友评论