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

时间:2019-05-31 10:17:01

标签: angular6 angular7

运行应用程序时出现此错误。这是我的申请的详细信息。

我已经尝试过清理缓存。

22 个答案:

答案 0 :(得分:21)

您的@ angular-devkit与@ angular / cli版本不兼容,因此,例如,仅安装像这样的旧版本即可:

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

答案 1 :(得分:16)

以下为我工作

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

答案 2 :(得分:7)

尝试升级到Ng8后出现相同问题,但由于依赖关系问题而失败。

  

npm卸载@ angular-devkit / build-angular

然后

  

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

修复了该问题...

答案 3 :(得分:5)

我在package.json文件中做了此更改,然后它起作用了。

"@angular-devkit/build-angular": "^0.803.23"

"@angular-devkit/build-angular": "^0.13.9"

答案 4 :(得分:5)

尝试从

更新package.json文件
  "@angular-devkit/build-angular": "^0.800.1" 

  "@angular-devkit/build-angular": "^0.12.4"

然后在命令行中运行npm install。

答案 5 :(得分:4)

每个人都致力于将@angular-devkit/build-angular版本降级为X,或将@angular/cli版本升级为Y或最新。

但是,请勿盲目建议使用X or Y or latest作为答案。 (尽管通常,降级devkit应该更好,因为升级CLI是一项重大更改)

要选择的正确版本始终取决于您的Angular(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版本,首先应该考虑升级到最新的主要版本,而不是简单地跳到下一个主要版本。

答案 6 :(得分:3)

我遇到了同样的问题,但是由于Ekta Gandhi的评论,我得以解决:

  

最后我找到了解决方案。 1)首先消除所有的变化   通过提供简单的命令git checkout package.json来package.json文件。   2)然后在package.json中进行更改后   @ angular-devkit / build-angular-〜0.800.1(添加尾部而不是上限)   3)然后运行命令rm -rf node_modules / 4)然后通过   命令npm clean cache -f 5)最后运行命令npm install。这个   为我工作。

....与Dimuthu提出的修改

  

将其制作为@ angular-devkit / build-angular“:” 0.13.4“并成功。

谢谢!

答案 7 :(得分:3)

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

最终对我有用的是或多或少地移除了角度cli并通过以下步骤重新安装它:

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

这帮助了我 来源:how to uninstall angular/cli

答案 8 :(得分:2)

我也遇到了这个问题,并且花了很多时间来解决它,我已经尝试了上述所有选项,但是没有任何解决方案可以解决我的问题。发生此问题是由于angular / cli和angular-devkit的版本不匹配,所以我做了以下事情:

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

    @ angular-devkit / build-angular“:” ^ 0.13.9“,

    @angular/cli": "~7.0.3", //这是针对Angular7,针对Angular8的:0.803.23

  2. 已删除package-lock.json

  3. 已执行:npm install

它解决了我的问题。

答案 9 :(得分:2)

我将@angular-devkit/build-angular": "0.9.0.1"更改为@angular-devkit/build-angular": "0.13.4",并且有效。

答案 10 :(得分:1)

这是我安装Angular 8时发生的,我无法解决一些不兼容问题。我不得不降级,因为我在每个版本中都碰到了兔子洞,直到找到可用的版本。

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

<?php if ( !is_page ([98,10,17]) ) : ?> <div class="mobile-header"> <img src="/images/mobile-header.jpg" width="1080" height="1000" alt="Sean Sheehan" /> </div> <?php if ( function_exists( 'soliloquy' ) ) { soliloquy( 'homepage-dark', 'slug' ); } ?> <?php elseif ( is_page(25) ) : ?> <div class="mobile-header"> <img src="/images/mobile-header.jpg" width="1080" height="1000" alt="Sean Sheehan" /> </div> <?php if ( function_exists( 'soliloquy' ) ) { soliloquy( 'photography-dark', 'slug' ); } ?> <?php endif; ?>

第二,使用devkit 0.800.1或0.800.1总是会导致不兼容。我尝试了很多组合,但是我不确定它是否完全兼容,特别是因为我使用的靴子稍微老了一点,还无法升级。

最后,我尝试降级(转到package.json并找到devDependencies),直到其中一个起作用。

npm install typescript@">=3.4 <3.5"

我确定您的问题是依赖版本,但我无法告诉您哪个版本。尝试降级。

答案 11 :(得分:1)

如果您将角度移到8或9,将达到目的

ng update @angular/cli

答案 12 :(得分:1)

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

问题是系统cli仍然停留在旧版本上,并且不会由ng update自动更新(因为它在角度控制项目之外),因此当尝试访问角度库。

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

npm i --global @angular/cli@latest

将解决问题 而不会破坏其他地方。

答案 13 :(得分:0)

在我这边是包裹

  

@ angular-devkit / build-angular

  

@ angular-devkit / build-ng-packagr

版本不同,将build-ng-packagr更新为与build-angular相同的版本。

答案 14 :(得分:0)

重新安装@ angular-devkit / build-angular @ 0.13.4

def a(t):
    return a[t]

答案 15 :(得分:0)

您有不兼容的依赖关系,我通过将package.json从另一个项目角度更改来解决了这个问题,然后在更改为packag.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"
   }

答案 16 :(得分:0)

在package.json中更改devkit构建器。

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

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

这对我有用 祝你好运。

答案 17 :(得分:0)

您只需审核代码,然后

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

答案 18 :(得分:0)

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

ng update @angular/cli @angular/core

Angular documentation

答案 19 :(得分:0)

此设置在角度8下效果很好:

Package.json:

<link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css" integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p" crossorigin="anonymous"/>

答案 20 :(得分:-1)

我遇到了这个问题,这就是我解决的方法。 问题主要是您的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

有关更多详细信息,请检查以下链接:here

答案 21 :(得分:-1)

以上给出的答案均不适合我。

我最初的目标是使用VSCode修复项目中有时持续编译的问题。

我尝试了很多方法,但是什么都没做正在工作-该项目只是不会编译!

最后我发现这里的问题是:

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

最后,我删除了先前克隆的项目 AGAIN(多次),并克隆了 AGAIN(也几次) DID但没有RAN“ npm install”,一切就开始起作用

我在这里学到的教训是:

有时候,当您尝试解决一些问题时,情况会变得更糟(我遇到的是我项目的 CONSTANT COMPILING )。

但这并不意味着我们无法尝试解决问题。我们可以。但是,当一切变得混乱时,我们最好使用原始代码。

幸运的是,我项目的持续编译一次仅发生一次,而不是每次都发生。它不是固定的,但我必须忍受,否则我的项目甚至无法编译。