关于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中。

---恢复内容结束---

自立更生,艰苦奋斗!
原文地址:https://www.cnblogs.com/javazxy/p/9045028.html