首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角库束依赖关系

角库束依赖关系
EN

Stack Overflow用户
提问于 2019-02-20 08:41:22
回答 2查看 6.6K关注 0票数 7

我使用CLI创建并捆绑了一个角库(7.2.0):

ng文库MyLibrary ng构建MyLibrary

这给了我需要的my-libary.umd.js包。

目前,所有依赖项都以peerDependencies的形式添加到库package.json中。我想要做的是实际上将一些依赖项与库(.umd)捆绑在一起。将它们添加为"dependencies“而不是"peerDependencies”似乎不起作用,我不知道有什么区别吗?

我怎么能这么做?

package.json示例,其中应该捆绑ngx。

代码语言:javascript
复制
{
  "name": "demo-plugin",
  "version": "0.0.1",
  "peerDependencies": {
    "@angular/common": "^7.1.0",
    "@angular/core": "^7.1.0"
  },
  "dependecies": {
    "ngx-spinner": "^7.1.4"
  },
  "bundledDependencies": [
    "ngx-spinner"
  ]
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-17 13:42:39

您想要的是将它添加到bundledDependencies

dependencies:当其他人使用您的库时,NPM会自动安装它们。这里列出的依赖关系也需要在ng-package.json ("whitelistedNonPeerDependencies")中白化。

peerDependencies:库的用户必须安装依赖项(将其添加到自己的package.json中)

bundledDependencies:在构建库时,依赖项将与库捆绑在一起。这也将捆绑所有传递依赖项。如果要停止该链,则需要添加不应该绑定到peerDependencies的依赖项。因此,例如,如果您想绑定依赖项A (它依赖于B ),那么您将得到一个与A和B的绑定,如果不希望B绑定,则将它添加到peerDependencies中。

您所拥有的每个依赖项都应该同时出现在其中一个中。因此,要绑定依赖项,需要将该依赖项添加到根的package.json (而不是库-Package.json)中。不应该做的是在库文件夹中运行npm install。如果在库文件夹中执行npm install,并且根package.json中没有捆绑的依赖项(因此根node_modules文件夹中缺少它),则可以成功构建,但依赖项将不包含在构建中( cli可能会提示此..)。

长话短说,针对你的具体问题:

  1. 从库-Package.json的“依赖项”-section中移除“ngx”
  2. 删除您库中的node_modules文件夹(如果您有一个)
  3. 在root-package.json中添加"ngx-spinner“作为依赖项
  4. 构建库
票数 9
EN

Stack Overflow用户

发布于 2019-02-20 09:08:42

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54782063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档