【问题标题】:Include dependencies in Angular CLI libararies在 Angular CLI 库中包含依赖项
【发布时间】:2019-12-05 00:26:13
【问题描述】:

我在自定义库中包含 Angular 材质依赖项时遇到问题。包含对自定义库的引用的主应用程序在构建应用程序时会引发错误“找不到@angular/material/core”和“@angular/material/tabs”。但是这些依赖存在于库的 node_modules 中。

我在网上看到将以下内容添加到库的 package.json

"dependencies": {
    "@angular/animations": "^8.2.14",
    "@angular/cdk": "^8.2.3",
    "@angular/material": "^8.2.3"
  }

应该可以解决这个问题,但它似乎没有用。

列出依赖项后,我执行 npm install 来安装上面列出的软件包。当我在主应用程序中执行 ng serve 时,它​​不包括主应用程序的 node_modules 中的 @angular/material 和 @angular/cdk 。 enter image description here

我希望我的库是独立的,并在安装时包含角度/材质。我错过了什么吗?

【问题讨论】:

    标签: angular angular-material angular-library


    【解决方案1】:

    如果不明确依赖它们,您将无法在主应用程序中使用这些库。即使它们是通过您的自定义依赖项安装的,节点也不会识别您的主应用程序中的那些。您还需要在主应用程序中将它们添加到您的package.json

    【讨论】:

    • 你是对的。它没有安装在我的主要应用程序中。但是没有办法让库自成一体吗?
    • 什么意思?你当然可以通过你自己的依赖暴露你想要的任何依赖,但这似乎是一个非常奇怪的解决方案。你为什么要这样做?
    • 我希望我的库是独立的,这样当用户获取我的库时,他们就不必手动安装依赖项。 Angular 材质是我的库用于样式的东西,我不希望用户手动安装它们。我尝试在 package.json 的依赖项中包含 @angular/material,但这并没有在我的主应用程序中安装依赖项
    • 无论你的库使用什么依赖,当你的库被添加到任何项目时,都会自动安装。您的库的所有依赖项都将安装并准备就绪,仅适用于您的库。这意味着它们已安装,但仅适用于该库,而不适用于项目本身。
    • 我在我的主应用程序中提供了我的库的路径。当我执行 npm install --save 时,它​​不会为 @angular/material 依赖项抛出错误。但是当我再次构建我的库并在我的主应用程序中执行 ng-serve 时,它​​说它找不到 @angular/material 依赖项。我再次必须执行 npm install 以摆脱它的依赖错误。这是预期的吗?有没有办法避免在构建库后在主应用程序中安装库?
    猜你喜欢
    • 2019-04-16
    • 2019-07-13
    • 2023-03-30
    • 1970-01-01
    • 2018-10-15
    • 2012-12-21
    • 2015-11-11
    • 1970-01-01
    相关资源
    最近更新 更多