关于package.json
---恢复内容开始---
用angular开发前台项目,每个项目的根目录下面,都有一个package.json文件,
定义了项目所需要的各种模块依赖,和项目的配置信息(比如名称,版本号等信息,有点像maven)。当我们执行npm install 命令时,就会根据这个配置文件,自动下载所需要的模块,也就是配置项目所需要的运行和开发环境。
for example,下面是一个最简单的package.json文件,只定义两项数据:项目名称和版本
{ “name” : "xxx", "version" : "0.0.0", }
说明:package.json文件内部就是一个json对象,该对象的每一个成员就是当前项目的一项设置,
name就是项目名称,version是版本(版本写法遵守“大版本.次要版本.小版本”的格式)。
下面是一个完整的package.json文件。
{ "name": "cmdb-front", "version": "0.0.0", "license": "MIT", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, "private": true, "dependencies": { "@angular/animations": "^4.0.0", "@angular/common": "^4.0.0", "@angular/compiler": "^4.0.0", "@angular/core": "^4.0.0", "@angular/forms": "^4.0.0", "@angular/http": "^4.0.0", "@angular/platform-browser": "^4.0.0", "@angular/platform-browser-dynamic": "^4.0.0", "@angular/router": "^4.0.0", "bootstrap": "^4.0.0-alpha.6", "classlist.js": "^1.1.20150312", "core-js": "^2.4.1", "d3": "^4.10.0", "echarts": "^3.8.5", "font-awesome": "^4.7.0", "intl": "^1.2.5", "jquery": "^3.2.1", "ng2-cookies": "^1.0.12", "primeng": "^4.2.2", "rxjs": "^5.1.0", "zone.js": "^0.8.4" }, "devDependencies": { "@angular/cli": "1.2.6", "@angular/compiler-cli": "^4.0.0", "@angular/language-service": "^4.0.0", "@types/jasmine": "~2.5.53", "@types/jasminewd2": "~2.0.2", "@types/node": "~6.0.60", "codelyzer": "~3.0.1", "jasmine-core": "~2.6.2", "jasmine-spec-reporter": "~4.1.0", "karma": "~1.7.0", "karma-chrome-launcher": "~2.1.1", "karma-cli": "~1.0.1", "karma-coverage-istanbul-reporter": "^1.2.1", "karma-jasmine": "~1.1.0", "karma-jasmine-html-reporter": "^0.2.2", "protractor": "~5.1.2", "ts-node": "~3.0.4", "tslint": "~5.3.2", "typescript": "~2.3.3" } }
下面就具体说明package..json文件中各个字段的意思。
dependencies字段,devDependencies字段
dependencies字段指定了项目运行所依赖的模块,devDependencies指定项目开发所需要的模块。
指定版本的各种限定主要有以下几种
1,指定版本:比如1.1.1,遵守“大版本.次要版本.小版本”的格式规定,安装时只安装指定版本。
2,波浪号+指定版本:比如~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),但是不安装1.3.x,也就是安装时不改变大版本号和次要版本号。
3,插入号+指定版本:比如^1.2.2,表示安装1.x.x的最新版本(不低于1.2.2),但是不安装2.x.x,也就是安装时不改变大版本号。需要注意的是,如果大版本号为0,则插入号的行为与波浪号相同,这是因为处于开发阶段,即使次要版本号变动,也可能带来程序的不兼容。
4,latest:安装最新版本。
package.json文件可以手工编写,也可以使用npm init 命令生成。
如果一个模块不在package.json文件中,就是开发时需要新加入的模块,可以单独安装这个模块,并使用相应的参数,将其写入package.json文件之中。方便之后npm install
For example:
npm install express --save
npm install express --save-dev
上面代码表示单独安装express模块,--save参数表示将该模块写入dependencies中,--save-dev表示将该模块写入devDependencies中。
---恢复内容结束---