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

196
我运行应用程序时遇到了这个错误。以下是我的应用程序的详细信息。

I am getting this error while running my application. Here are the details of my application.

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

我已经尝试过清除缓存。


这是我的应用程序的详细信息。 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 - Ekta Gandhi
1
这个问题通常是由于不兼容的软件包引起的。您最近更新了 package.json 吗? - Deepika
我还没有更新 package.json 文件。 - Ekta Gandhi
7
最终我找到了解决方案。 1)首先使用简单的命令 git checkout package.json 消除 package.json 文件中的所有更改。 2)然后在 @angular-devkit/build-angular-~0.800.1 中进行更改(将 cap 改为 tail)。 3)接着运行命令 rm -rf node_modules/。 4)然后通过命令 npm clean cache -f 清除缓存。 5)最后运行命令 npm install。 这对我有效。 - Ekta Gandhi
2
以上,npm clean cache -f 是错误的,应该是 npm cache clean --force - Fabien Haddadi
3
我发现我已经将 nvm 设置为使用错误的 node 版本,需要正确地使用 nvm use 12.14.01(在我的情况下)。请注意不同版本的 node 可能需要不同的设置。 - QuietSeditionist
18个回答

1
在我的电脑上,问题出在以下两个包上:
@angular-devkit/build-angular @angular-devkit/build-ng-packagr 它们的版本不一致。将build-ng-packagr更新到与build-angular相同的版本即可解决问题。

1
如果你正在转向使用 Angular 8 或 9,这将起到作用。
ng update @angular/cli

0

您可以简单地审核您的代码,然后

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

0

对我而言真正起作用的是使用以下命令更新应用程序及其依赖项:

ng update @angular/cli @angular/core

Angular文档


-1

你的依赖包不兼容,我用另一个 Angular 项目的 package.json 来解决了这个问题,然后在这个 package.json 中只需更改依赖版本即可。

更改后执行以下命令:

-npm link

-npm serve -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"
   }

我已经尝试过了,它给了我相同的错误信息: 数据路径“”不应具有其他属性(es5BrowserSupport)。 - Ekta Gandhi

-1

以上提供的答案都对我没用。

我的初衷是要解决使用VSCode编译项目时经常出现的编译问题

我尝试了很多方法,但没有一种方法有效——项目就是无法编译!

最终,我找到了问题所在:

我从公司的代码库中克隆了项目,所有代码都必须与项目现有部分编码时使用的依赖版本完全匹配。

最后,我再次删除了之前克隆的项目(多次)再次克隆(也多次),然后仅运行“npm install”,一切都开始正常工作。

我从中学到的教训是:

有时候,当你试图解决一些问题时(比如我遇到的经常编译的问题),你可能会使情况变得更糟。

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

幸运的是,我的项目只需要定期编译,而不是一直编译。虽然这个时间不固定,但我必须忍受它,否则我的项目甚至无法编译。


-1

我曾经遇到过这个问题,这是我解决它的方法。 问题大多是由于您的Angular版本不支持用于构建的Node.js版本。 所以最好的解决方案是将Node.js升级到最新的稳定版本。

为了干净地升级Node.js,我建议在Mac上使用n。

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

现在检查一下你是否已经更新:

node -v
npm -v

更多细节,请查看此链接:这里


很想知道为什么我收到了这个踩票,因为这是一个干净的答案,没有尝试使用一些“变通方法”。 - arielb
因为这与Node版本无关,应该是Angular CLI版本。 - zhuhang.jasper
我刚遇到了这个问题,我不认为是angular-cli版本的问题,它与angular-cli有关,但受节点版本的影响。 - arielb

-2

重新安装@angular-devkit/build-angular@0.13.4可以解决问题。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接