在创建Angular 2库npm包时,我应该对Angular 2依赖项使用peerDependencies还是依赖项?

时间:2016-10-08 00:51:08

标签: angular npm

目前,当我为Angular 2创建npm包时,主要是Angular 2服务,我使用peerDependencies如下:

  "peerDependencies": {
    "@angular/core": "^2.0.0",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "^0.6.6"
  }

我没有使用dependencies,因为我不希望我的包裹在npm install期间提取它们。我预计目标应用程序是Angular 2。

并在devDependencies中编译我的包所需的所有依赖项:

  "devDependencies": {
    "@angular/core": "^2.0.0",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "^0.6.6",
    "typescript": "*",
    "typings": "*"
  }

但是,我应该使用dependencies还是peerDependencies

我主要担心的是使用该软件包的应用程序。它们是否会影响消费应用程序的构建过程?

或者我做错了,应该切换回dependencies

1 个答案:

答案 0 :(得分:5)

来自https://nodejs.org/en/blog/npm/peer-dependencies/

  

Peer Dependencies

     

我们需要的是一种表达这些"依赖关系的方法。之间   插件及其主机包。某种说法,"我只在工作的时候   插入我的主机包的1.2.x版本,所以如果你安装我,   确保它与兼容的主机并列。"我们称之为   关系是同伴的依赖。

正如我所解释的那样,对等依赖关系只是告诉使用你的软件包的人,如果他们没有安装对等的依赖项,那么它将无法工作。