2017-02-07 175 views
0

试图找出什么peerDependencies代表...我想出了这个package.json内容文件。它属于一个分布在那里的图书馆项目。没有依赖关系的package.json文件?

{ 
    "name": "...", 
    "version": "...", 
    "description": "...", 
    "author": "...", 
    "license": "Unlicense", 
    "main": "dist/index.js", 
    "typings": "dist/index.d.ts", 
    "scripts": { 
     "build": "typings install && tsc --outDir dist/" 
    }, 
    "peerDependencies": { 
     "@angular/core": "^2.0.0", <<<<<<<< 
     "@angular/http": "^2.0.0", <<<<<<<< 
     "@angular/common": "^2.0.0", <<<<<<<< 
     "@angular/compiler": "^2.0.0", <<<<<<<< 
     "core-js": "^2.4.0", <<<<<<<< 
     "reflect-metadata": "^0.1.3", <<<<<<<< 
     "rxjs": "5.0.0-beta.12", <<<<<<<< 
     "zone.js": "^0.6.17" <<<<<<<< 
     }, 
     "devDependencies": { 
     "@angular/core": "^2.0.0", <<<<<<<< 
     "@angular/http": "^2.0.0", <<<<<<<< 
     "@angular/common": "^2.0.0", <<<<<<<< 
     "@angular/compiler": "^2.0.0", 
     "@angular/platform-browser": "^2.0.0", <<<<<<<< 
     "core-js": "^2.4.0", <<<<<<<< 
     "reflect-metadata": "^0.1.3", <<<<<<<< 
     "rxjs": "5.0.0-beta.12", <<<<<<<< 
     "zone.js": "^0.6.17", <<<<<<<< 
     "typescript": "^2.0.0", 
     "typings": "^1.3.2" 
     } 
} 
  1. 为什么相同的封装上devDependenciespeerDependencies加入?
  2. 为什么dependencies不使用?

回答

1

由于npm 3,peerDependencies已经是not automatically downloaded了。相反,如果未安装依赖关系,nom会发出警告。

原因构建一个package.json这样,我会想象是:

  • 开发这个包的需要下载和安装的依赖关系,并使用该列表devDependencies

  • 该软件包的消费者不一定需要下载依赖项,因为它们可能已经将它们安装在他们的项目中。但是,如果他们还没有他们,peerDependencies的存在将保证他们将收到安装警告(他们将需要手动解决)。