2017-02-07 14 views
0

peerDependenciesの略語...このpackage.jsonコンテンツファイルを思いつきました。それはそこに配布されている図書館プロジェクトに属します。同じパッケージがdevDependencies上とpeerDependenciesに追加されたのはなぜ依存関係のない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. なぜdependenciesは使用されていませんか?

答えて

1

npm 3,peerDependenciesはもうnot automatically downloadedです。代わりに、依存関係がまだインストールされていない場合、nomは警告を出します。

私が想像package.jsonこの方法を構造化する理由は次のとおりです。

  • 開発者このパッケージのは、リストをダウンロードして、依存関係をインストールして使用する必要がdevDependencies

  • このパッケージの消費者は、プロジェクトに既にインストールされている可能性があるため、必ずしも依存関係をダウンロードする必要はありません。ただし、まだ持っていない場合は、peerDependenciesが存在するため、インストール時に警告が表示されます(手動で解決する必要があります)。

関連する問題