【问题标题】:Error "library" has missing dependencies - @angular/material/form-field错误“库”缺少依赖项 - @angular/material/form-field
【发布时间】:2021-07-26 07:49:52
【问题描述】:

我有一个几年前的共享组件库项目(只是说它已经运行了一段时间)。我想用 Angular Material 组件替换一些自定义组件。但是,当我将 NgMat 添加到库项目时,尝试在单独的项目中使用它时出现错误。

ERROR in The target entry-point "my library project" has missing dependencies:
- @angular/material/form-field
- @angular/material/datepicker

项目 package.json 有:

...
    "peerDependencies": {
    "@angular/common": "~10.2.4",
    "@angular/core": "~10.2.4",
    "@angular/forms": "~10.2.4",
    "@angular/material": "^10.2.4",
...

而主 package.json 文件有:

...
  "dependencies": {
    "@angular/animations": "~10.2.4",
    "@angular/cdk": "^9.2.4",
    "@angular/common": "~10.2.4",
    "@angular/compiler": "~10.2.4",
    "@angular/core": "~10.2.4",
    "@angular/forms": "~10.2.4",
    "@angular/material": "^10.2.4",
...

我还按照此处Dependency @ng-bootstrap/ng-bootstrap must be explicitly whiteliste 的建议将@angular/material 列入ng-package.json 的白名单,同时在项目的依赖项中使用@angular/material 而不是peerDependencies。

【问题讨论】:

  • 这可能无法解决问题,但@angular/cdk 不应该在版本10.2.4 上吗?

标签: angular angular-material


【解决方案1】:

@angular/material 在库包的 peerDependencies 中声明。

"peerDependencies": { --> Peer dependencies
    "@angular/common": "~10.2.4",
    "@angular/core": "~10.2.4",
    "@angular/forms": "~10.2.4",
    "@angular/material": "^10.2.4",

这意味着当你安装库时,peerDependencies 中的包不会自动安装。

要解决此问题,

您应该将@angular/material 移至库包中的依赖项。

"dependencies": { --> dependencies
    "@angular/material": "^10.2.4",

(或)在 application package.json 依赖项中声明 @angular/material。

"dependencies": {
    "@angular/animations": "~10.2.4",
    "@angular/cdk": "^9.2.4",
    "@angular/common": "~10.2.4",
    "@angular/compiler": "~10.2.4",
    "@angular/core": "~10.2.4",
    "@angular/forms": "~10.2.4",
    "@angular/material": "^10.2.4" --> Newly added

【讨论】:

  • 我在主 package.json 文件中有 @angular/material。我复制和粘贴时没有选择足够的行。它现在在那里。我还更新了问题以包含其他步骤。
  • 删除 node_modules 并再次运行 npm install。如果您仍然面临,请提供带有示例代码的 stackblitz 链接。
猜你喜欢
  • 2022-07-08
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
  • 2019-01-20
  • 2014-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多