首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >材质控制的角度版本问题

材质控制的角度版本问题
EN

Stack Overflow用户
提问于 2021-09-10 21:48:12
回答 1查看 267关注 0票数 0

我的应用程序在材料库中运行良好,现在突然出现了构建错误。我的打字稿版本、CLI版本和材料库之间似乎有些混淆。我一直在绕着这个转,所以当我试着读这些错误的时候,我很难理解这些错误。下面是我的ng版本和ng构建命令的输出。如能提供任何帮助或指导,将不胜感激。

-杰森

错误: node_modules/@angular/material/tabs/tab.d.ts:24:22 -

TS2420:类'MatTab‘不正确地实现接口'CanDisable’。属性“禁用”在“MatTab”类型中缺失,但在类型“CanDisable”中是必需的。

24导出声明类MatTab扩展_MatTabMixinBase实现OnInit、CanDisable、OnChanges、OnDestroy {~

node_modules/@angular/material/core/common-behaviors/disabled.d.ts:12:5 12禁用:布尔值;此处声明“禁用”。

错误: node_modules/@angular/material/toolbar/toolbar.d.ts:22:22 -错误TS2420:类'MatToolbar‘不正确地实现接口'CanColor’。类型'MatToolbar‘中缺少“CanColor”类型中的下列属性: defaultColor

22导出声明类MatToolbar扩展_MatToolbarMixinBase实现CanColor,AfterViewInit {~

错误: node_modules/@angular/material/tree/node.d.ts:17:22 -错误TS2420:类'MatTreeNode‘不正确地实现接口'CanDisable’。属性“禁用”在“MatTreeNode”类型中缺失,但在类型“CanDisable”中是必需的。

17导出声明类MatTreeNode扩展_MatTreeNodeMixinBase实现CanDisable、DoCheck、HasTabIndex、OnInit、OnDestroy {~

node_modules/@angular/material/core/common-behaviors/disabled.d.ts:12:5 12禁用:布尔值;此处声明“禁用”。

错误: node_modules/@angular/material/tree/node.d.ts:17:22 - TS2420:类'MatTreeNode‘不正确地实现接口'HasTabIndex’。类型'MatTreeNode‘缺少’HasTabIndex‘类型中的下列属性: tabIndex,defaultTabIndex

17导出声明类MatTreeNode扩展_MatTreeNodeMixinBase实现CanDisable、DoCheck、HasTabIndex、OnInit、OnDestroy {~

错误:node_node/zone.js/dist/zone.js.d.ts:600:21-错误TS2503:无法找到命名空间'NodeJS‘。

600声明var全局: NodeJS.Global;~~

EN

回答 1

Stack Overflow用户

发布于 2021-09-11 01:47:56

如果您的代码存储库是维护的(GIT),那么我将尝试查看它的历史记录,并在出现错误之前查看安装在那里的所有依赖项+ devDependencies。在更进一步之前,我将进行一个新的提交,这样您就可以在修复版本期间出现故障时恢复,并且仍然有新开发的代码。

从图像上看,似乎有些v11和v12角包是混合的。在语义版本控制中,它意味着重大的更改。在角的情况下,所有的“角作用域”包都是类似版本的。这有助于识别兼容的包。因此,V11包可能与V12包不兼容。

然后,您应该解决所有的软件包,以兼容您的版本,我假设您的应用程序是建立在角V11。要找到兼容的包版本,可以转到npmjs.com并查找每个包名。在“版本”选项卡中,您可以看到所有可用的选项。如果不清楚哪个版本是兼容的,那么带有错误包版本的npm i应该会用一些“对等依赖安装缺失”的消息来唠叨它。

在这里,角V11.0.7包依赖项应该是什么样子:

代码语言:javascript
运行
复制
"dependencies": {
  "@angular/animations": "~11.0.7",
  "@angular/common": "~11.0.7",
  "@angular/compiler": "~11.0.7",
  "@angular/core": "~11.0.7",
  "@angular/forms": "~11.0.7",
  "@angular/platform-browser": "~11.0.7",
  "@angular/platform-browser-dynamic": "~11.0.7",
  "@angular/router": "~11.0.7",
  "rxjs": "~6.6.0",
  "tslib": "^2.0.0",
  "zone.js": "~0.10.2"
},
"devDependencies": {
  "@angular-devkit/build-angular": "~0.1100.7",
  "@angular/cli": "~11.0.7",
  "@angular/compiler-cli": "~11.0.7",
  "@types/jasmine": "~3.8.0",
  "@types/node": "^12.11.1",
  "codelyzer": "^6.0.0",
  "jasmine-core": "~3.8.0",
  "jasmine-spec-reporter": "~5.0.0",
  "karma": "~5.1.0",
  "karma-chrome-launcher": "~3.1.0",
  "karma-coverage": "~2.0.3",
  "karma-jasmine": "~4.0.0",
  "karma-jasmine-html-reporter": "^1.5.0",
  "protractor": "~7.0.0",
  "ts-node": "~8.3.0",
  "tslint": "~6.1.0",
  "typescript": "~4.0.2"
}

我在ng --version清单中看到的其他包可能在package.json依赖项中如下所示:

代码语言:javascript
运行
复制
"@angular/cdk": "~11.0.4"
"@angular/flex-layout": "~11.0.0-beta.33"
"@angular/material": "~11.0.4"

您还可以尝试删除node_modules目录并使用npm i重新安装它。有时候会有帮助。并尝试删除package-lock.json,它也是用npm i生成的,但出于某些原因不推荐使用它。

如果问题持续存在,则可能与全球一揽子方案有关。然后,我更喜欢将一些package.json脚本转换为使用本地包,例如:

代码语言:javascript
运行
复制
"scripts": {
  "old-start": "ng serve",
  "new-start": "npx ng serve",
  "alternative": "./node_modules/.bin/ng serve",
}

这不应该是一个新的国家预防机制的问题,但如果国家预防机制是旧的,它可能会有所帮助。

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

https://stackoverflow.com/questions/69138300

复制
相关文章

相似问题

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