2017-02-07 3 views
0

Versucht herauszufinden, was peerDependencies für ... steht. Ich habe diese package.json Inhaltsdatei erstellt. Es gehört zu einem Bibliotheksprojekt, das dort verteilt wird.Eine package.json Datei ohne Abhängigkeiten?

{ 
    "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. Warum ein gleiches Paket wird auf devDependencies hinzugefügt und auf peerDependencies?
  2. Warum dependencies wird nicht verwendet?

Antwort

1

Seit npm 3, peerDependencies sind not automatically downloaded mehr. Stattdessen wird nom warnen, wenn eine Abhängigkeit noch nicht installiert ist.

Der Grund eine package.json auf diese Weise für die Strukturierung, die ich mir vorstellen würde, ist:

  • Entwickler dieses Pakets die Abhängigkeiten herunterladen müssen und installieren und verwenden, um die Liste in devDependencies

  • Verbraucher dieses Pakets müssen nicht unbedingt die Abhängigkeiten herunterladen, da sie möglicherweise bereits in ihrem Projekt installiert sind. Wenn sie jedoch nicht bereits vorhanden sind, garantiert das Vorhandensein von peerDependencies, dass sie eine Warnung zur Installation erhalten (die sie manuell beheben müssen).

Verwandte Themen