2017-02-07 228 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的存在將保證他們將收到安裝警告(他們將需要手動解決)。