错误:数据路径“.builders[' app-shell ']”应具有必需的属性“ Class ”

我在运行应用程序时遇到此错误。这是我申请的细节。

Angular CLI: 7.3.3
Node: 10.15.1
Angular: 7.2.7
@angular-devkit/architect -0.13.3
@angular-devkit/build-angular- 0.800.1
@angular-devkit/build-optimizer - 0.800.1
@angular-devkit/build-webpack - 0.800.1
@angular-devkit/core -7.3.3
@angular-devkit/schematics -7.3.3
@angular/cli -7.3.3
@ngtools/webpack -8.0.1
@schematics/angular -7.3.3
@schematics/update 0.13.3
rxjs 6.3.3
typescript 3.2.4
webpack 4.30.0

我已经尝试了缓存清理。

173735 次浏览

在package.JSON中,更改devkit构建器。

"@angular-devkit/build-angular": "^0.800.1",

"@angular-devkit/build-angular": "^0.10.0",
对我

有用。
祝你好运.

当我安装Angular 8时,这种情况发生在我身上,有一些不兼容的问题我无法解决。我不得不降级,因为我进入了兔子洞,与每一个版本杂耍,直到我找到一个工作。

首先,TypeScript已经过时,默认安装添加了对TypeScript 3.1.6的引用,它需要3.4或更高版本。

npm install typescript@">=3.4 <3.5"

其次,使用devkit 0.80 0.1或0.80 0.1总是以不兼容告终。我尝试了许多组合,但我不确定它是否完全兼容,特别是因为我使用的是一个有点旧的引导程序,我还不能升级。

最后,我尝试降级(转到package.JSON并找到devDependencies),直到其中一个正常工作。

@angular-devkit/build-angular": "0.13.4"

我肯定你的问题是依赖版本,但我不能告诉你是哪一个。试一试降级。

你有不兼容的依赖关系,我通过将package.JSON更改为另一个项目Angular来解决这个问题,然后在更改这个package.JSON之后,你只更改你拥有的依赖关系版本。

更改后写入:

-NPM链接

-NPM服务-o

那就是工作:)

   {
"name": "angular-jwt-auth",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^7.1.4",
"@angular/cdk": "^7.3.1",
"@angular/common": "~7.1.0",
"@angular/compiler": "~7.1.0",
"@angular/core": "~7.1.0",
"@angular/forms": "~7.1.0",
"@angular/http": "^6.1.10",
"@angular/material": "^7.3.1",
"@angular/platform-browser": "~7.1.0",
"@angular/platform-browser-dynamic": "~7.1.0",
"@angular/router": "~7.1.0",
"@ng-bootstrap/ng-bootstrap": "^4.2.0",
"@types/jquery": "^3.3.29",
"angular-6-datatable": "^0.8.0",
"bootstrap": "^4.3.1",
"chart.js": "^2.8.0",
"core-js": "^2.5.4",
"jquery": "^3.4.1",
"rxjs": "~6.3.3",
"zone.js": "~0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.11.0",
"@angular/cli": "~7.1.0",
"@angular/compiler-cli": "~7.1.0",
"@angular/language-service": "~7.1.0",
"@types/chart.js": "^2.7.53",
"@types/jasmine": "^2.8.16",
"@types/jasminewd2": "^2.0.6",
"@types/node": "~8.9.4",
"codelyzer": "~4.2.1",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~3.1.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~1.1.2",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tslint": "~5.11.0",
"typescript": "~3.1.6"
}

您的@Angular-DevKit与@Angular/CLI版本不兼容,因此只需安装较旧的版本,例如:

npm install @angular-devkit/build-angular@0.13.8 @angular-devkit/build-ng-packagr@0.13.8

在尝试升级到NG8后,由于依赖性问题而失败。

npm uninstall @angular-devkit/build-angular

然后我用了,

npm install @angular-devkit/build-angular@0.12.4

修好了..

跟随对我有用。

npm uninstall @angular-devkit/build-angular
npm install @angular-devkit/build-angular@0.13.0

我也有同样的问题,但多亏了艾克塔·甘地的评论,我解决了这个问题:

最后我找到了解决办法。

1)首先通过给出简单的命令git checkout package.JSON来消除package.JSON文件中的所有更改。

2)然后在@angular-devkit/build-angular-~0.800.1中的package.JSON中进行更改(添加tail而不是cap)

3)然后运行命令RM-RF node_模块/

4)然后通过发出命令NPM clean cache-f来清除catch

5)最后运行命令NPM install.这对我有用。

....以及Dimuthu提出的修改

把它写到@angular-devkit/build-angular “:” 0.1 3.4 ",它成功了。

它的工作重新安装@angular-devkit/build-angular@0.13.4。

npm install @angular-devkit/build-angular@0.13.4 --save-dev

这里的每个人都在关注将@angular-devkit/build-angular降级到@angular 7.X版本以实现兼容性,但他们应该所做的是将@angular/cli升级到angular 8版本。

问题是系统CLI仍然停留在旧版本,并且不会由ng update自动更新(因为它在Angular控制的项目之外),因此当尝试访问Angular库时,它将保留在不兼容的版本。

降级@angular-devkit/build-angular只会导致更多的不兼容。

npm i --global @angular/cli@latest

将解决问题没有破坏其他东西。

我有这个问题,这就是我如何解决它。 问题主要是你的Angular版本不支持你的Node.JS版本。 因此,最好的解决方案是将您的Node.JS升级到最新的稳定版本。

对于Node.JS的干净升级,我建议使用N.如果您使用的是Mac.

npm install -g n
npm cache clean -f
sudo n stable
npm update -g

现在检查您是否已更新:

node -v
npm -v

有关更多详细信息,请查看此链接:在这里

我也遇到了这个问题,对我来说,当做更多的更新时,会出现更多的问题。

最终对我起作用的或多或少是删除Angular CLI并通过以下步骤重新安装它:

npm uninstall -g @angular/cli
npm cache clean --force
npm install -g @angular/cli

这帮了我。 来源:_农行_0

每个人都在关注将@angular-devkit/build-angular版本降级到X,或将@angular/cli版本升级到Y或最新版本。

但是,请不要盲目地建议X or Y or latest作为答案。(尽管通常情况下,降级devkit应该更好,因为升级CLI是一个突破性的变化)

要选择的正确版本始终取决于您的角度(Angular-CLI)版本。

Angular CLI v8.3.19 -> 0.803.19
Angular CLI v8.3.17 -> 0.803.17
Angular CLI v7.3.8 -> 0.13.8
Angular CLI v6-lts -> 0.8.9

有关其他特定版本,请访问:https://github.com/angular/angular-cli/tags。找到您的CLI版本,在某些标记中,它们确实提到了@angular-devkit/**软件包的相应版本。

注意:如果你想升级你的CLI版本,你应该首先考虑升级到你的主版本的最新版本,不要简单地跳到下一个主版本。

对我来说,这是一个包裹。

@angular-devkit/build-angular

@angular-devkit/build-ng-packagr

版本不同,将build-ng-packagr更新为与build-angular相同的版本解决了我的问题。

上面给出的答案都不适合我。

我最初的目标是使用vscode修复我的项目中有时常量编译

我尝试了很多很多方法,但什么都没有是有效的--项目只是不会成功!

最后,我发现了问题所在:

我从我公司的存储库中克隆了该项目,并且当对项目的现有部分进行编码时,那里的所有代码都必须与依赖项的版本完全一致。

最后,我删除了之前克隆的项目再次(相当多次),并克隆了再次(也有几次)什么都不做,只是运行“ NPM安装”,一切都开始工作

我在这里学到的教训是:

有时,当您尝试修复某些问题时,情况会变得更糟(我遇到的问题是我的项目的常量编译)。

但这并不意味着我们不能尝试解决问题。我们可以。但当一切都变得一团糟时,我们最好使用原始代码。

幸运的是,我的项目的常量编译只是偶尔发生一次,而不是一直发生。它不是固定的,但我必须忍受它,否则我的项目甚至不会编译。

如果你移动到角度8或9,这将做的技巧。

ng update @angular/cli

我也面临着这个问题,并努力了几个小时来解决它,我已经尝试了上述所有的选择,但没有解决我的问题。此问题是由于Angular/CLI和Angular-DevKit的版本不匹配造成的,因此我执行了以下操作:

  1. 手动更改的文件版本:

    @angular-devkit/build-angular “:”^0.1 3.9 ",

    @angular/cli": "~7.0.3",//这适用于角度7,对于角度8:0.803.23

  2. 已删除package-lock.JSON

  3. 已执行:NPM安装

它解决了我的问题。

你可以简单地审计你的代码,然后

#sudo su
rm -rf package-lock.json node_modules
sudo npm i --save

实际上对我有用的是更新应用程序及其依赖项:

ng update @angular/cli @angular/core

角度文件