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

Ekt*_*dhi 95 angular6 angular7

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

我已经尝试过清理缓存。

小智 112

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

"@angular-devkit/build-angular": "^0.800.1",
Run Code Online (Sandbox Code Playgroud)

"@angular-devkit/build-angular": "^0.10.0",
Run Code Online (Sandbox Code Playgroud)

这个对我有用。
祝好运。

  • 到达`@ angular-devkit / build-angular“:” 0.13.4“`并且有效。 (14认同)
  • 尝试了这个...但是仍然无法正常工作。 (4认同)
  • 完美的。使用“0.13.4”,然后运行 ​​npm build (4认同)
  • 0.13.4对我有用,但是请确保先删除node_modules文件夹,删除package-lock.json,然后运行npm install。似乎可以解决所有问题。 (4认同)
  • 该解决方案有效,但是它是错误的,您应该升级角度和角度cli版本。检查下面的@ovangle答案 (3认同)

zhu*_*per 81

每个人都在专注于将@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
Run Code Online (Sandbox Code Playgroud)

对于其他特定版本,请访问:https : //github.com/angular/angular-cli/tags。找到你的 CLI 版本,在一些标签中,他们确实提到了@angular-devkit/**包的相应版本。

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

  • 不知道为什么这个答案被否决了;这是个好建议。事实上,它解决了我的问题(因为我已将“devkit/build-angular”包升级到“0.803.x”,但将 Angular CLI 保留为“7.3.x”。因为我不打算升级我的 Angular CLI ,我又重新使用 devkit 的 `0.13.x` 版本 (3认同)
  • @GreggL 事实上,我的答案比得票最多的答案要好。其他答案只是建议盲目升级/降级。正如我的回答所暗示的,正确的 CLI/devkit 版本是相关的,但没有人给出 F,因为开发社区就是这样。 (2认同)
  • 为了补充这个伟大的答案:在我自己的项目中,我在开发依赖项中包含“@angular/cli”,并确保它与“@angular-devkit/build-angular”匹配。这样我就可以使用多个 CLI 版本维护多个项目。如果你执行 `ng s` ,它将使用你的计算机 CLI,如果你执行 `npm start` (这是 `package.json` 中用于执行 `ngserve` 的脚本,它实际上会使用本地 CLI 启动此应用程序)正确的 CLI。希望这有帮助 (2认同)

aba*_*sar 66

以下对我有用

npm uninstall @angular-devkit/build-angular
npm install @angular-devkit/build-angular@0.13.0
Run Code Online (Sandbox Code Playgroud)

  • 虽然这个答案很直接,但也缺乏资源或参考。人们直接盲目地安装特定的软件包版本可能会破坏他们的整个项目。请说清楚并提供一些参考。 (7认同)

ova*_*gle 31

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

问题在于系统cli仍然停留在旧版本上,并且不会自动更新ng update(因为它不在角度控制的项目之内),因此在尝试访问角度库时,它处于不兼容的版本。

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

npm i --global @angular/cli@latest
Run Code Online (Sandbox Code Playgroud)

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

  • 这应该是答案。我发生这个错误是因为我从一个已更新到 Angular 8 的分支中拉取,但我的计算机的 Angular 仍然是 Angular 7。 (6认同)
  • 当您对仍位于“ angular @ 7”上的项目执行“ npm audit fix”时,可能会发生此问题,因此有时将@ angular-devkit / build-angular降级是正确的答案 (6认同)
  • 运行`npm audit fix`有时会引入制动更改。我们应该改为运行npm audit来理解调查结果,并使用类似npm i --save-dev <package @ version>的软件包将软件包1升级。 (3认同)

小智 26

您的@ angular-devkit与@ angular / cli版本不兼容,因此只需安装较旧的版本,例如:

npm install @angular-devkit/build-angular@0.13.8 @angular-devkit/build-ng-packagr@0.13.8
Run Code Online (Sandbox Code Playgroud)


Alf*_*avo 13

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

npm卸载@ angular-devkit / build-angular

然后

npm安装@ angular-devkit / build-angular @ 0.12.4

固定它...


小智 8

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

终于我找到了解决方案。

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

2)然后在@ angular-devkit / build-angular-〜0.800.1中的package.json中进行更改(添加尾部而不是上限)

3)然后运行命令rm -rf node_modules /

4)然后通过给命令npm clean cache -f清除catch

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

....随着Dimuthu提出的修改

到达@ angular-devkit / build-angular“:” 0.13.4“并成功了。


ton*_*nes 7

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

最后对我有用的是或多或少地删除 angular cli 并通过以下步骤重新安装它:

npm uninstall -g @angular/cli
npm cache clean --force
npm install -g @angular/cli
Run Code Online (Sandbox Code Playgroud)

这帮助我解决了来源:如何卸载 angular/cli


Max*_*ios 6

当我安装Angular 8时,这发生在我身上,有些无法解决的不兼容性。我不得不降级,因为我在每个版本中都遇到了麻烦,直到找到一个可行的版本为止。

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

npm install typescript@">=3.4 <3.5"

其次,使用devkit 0.800.1或0.800.1总是会导致不兼容。我尝试了多种组合,但是我不确定它是否完全兼容,特别是因为我使用的靴子稍旧一些,因此无法升级。

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

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

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