【问题标题】:Errors: Data path ".builders['app-shell']" should have required property 'class'错误:数据路径“.builders['app-shell']”应该具有必需的属性“类”
【发布时间】:2019-05-31 10:17:01
【问题描述】:

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

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 节点: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
  • 这个问题一般是因为包不兼容。你最近更新过 package.json 吗?
  • 我终于找到了解决方案。 1)首先通过给出简单的命令 git checkout package.json 消除 package.json 文件中的所有更改。 2)然后在 @angular-devkit/build-angular- ~0.800.1 中的 package.json 中进行更改(添加尾部而不是 cap) 3)然后运行命令 rm -rf node_modules/ 4)然后通过给出命令 npm 清理 catch clean cache -f 5) 最后运行命令 npm install。这对我有用。
  • 以上,npm clean cache -f错了,应该是npm cache clean --force
  • 我发现我将 nvm 设置为使用错误版本的节点,需要使用 nvm use 12.14.01 正确设置它(在我的情况下)

标签: angular6 angular7


【解决方案1】:

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

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

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

它对我有用。
祝你好运。

【讨论】:

  • 发送到@angular-devkit/build-angular": "0.13.4" 并且成功了。
  • 完美。使用“0.13.4”,然后运行 ​​npm build
  • 登陆这里是因为我收到了关于在 js-yaml "^0.10.0" 修复了它。
  • 0.13.4 对我有用,但请确保先删除 node_modules 文件夹,删除 package-lock.json,然后运行 ​​npm install。似乎可以解决所有问题。
  • 此解决方案有效,但它是错误的,您应该升级 angular 和 angular cli 版本。检查下面的@ovangle 答案
【解决方案2】:

以下对我有用

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

【讨论】:

  • 虽然这个答案是直接的,但它也缺乏资源或参考。盲目地直接安装特定包版本的人可能会破坏他们的整个项目。请清楚并提供一些参考。
  • npm install @angular-devkit/build-angular@0.13.4 工作
【解决方案3】:

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

问题是系统cli仍然停留在旧版本并且没有被ng update自动更新(因为它在角度控制项目之外),所以在尝试时它被留在一个不兼容的版本访问 Angular 库。

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

npm i --global @angular/cli@latest

将解决问题不会破坏其他地方的东西。

【讨论】:

  • 这应该是答案。这个错误发生在我身上,因为我从一个已更新到 Angular 8 的分支中提取,但我的计算机的 Angular 仍然是 Angular 7。
  • 当您对仍在使用 angular@7 的项目执行 npm audit fix 时,可能会出现此问题,因此有时降级 @angular-devkit/build-angular 是正确的答案
  • 运行npm audit fix 有时会引入制动变化。我们应该改为运行 npm audit 以了解结果并使用类似 npm i --save-dev <package@version> 的方式逐个升级包
  • @zhuhang 这显然是错误的。您可以期望升级全局 CLI 向后兼容最近的几个版本,您不一定期望它向前兼容。
  • @ovangle 我没有提到前向兼容。我是说人们不应该盲目升级或降级,尤其是angular-cli版本。应该确定他们当前的 CLI 版本并使用与该 CLI 匹配的 devkit。如果你想升级 devkit 包,那么完全升级 CLI 是正确的。
【解决方案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 版本,应首先考虑升级到最新的主要版本,不要简单地跳到下一个主要版本。

【讨论】:

  • 不知道为什么这个答案被否决了;这是个好建议。事实上,它解决了我的问题(因为我已将我的 devkit/build-angular 包升级到 0.803.x,但将我的 Angular CLI 留在了7.3.x。由于我不打算升级我的 Angular CLI,我又回到使用 ver @ 987654332@devkit
  • @GreggL 事实上,我的回答比投票最多的那个要好。其他答案只是建议盲目升级/降级。正如我的回答所暗示的,正确的 CLI/devkit 版本相关,但没有人给出 F,因为这就是开发社区的样子。
  • 你是救生员,TX!但是你对 cli 7.0.6 有什么想法吗? It doesn't written there
  • 补充这个好答案:在我自己的项目中,我在开发依赖项中包含@angular/cli,并确保它与@angular-devkit/build-angular匹配。这样我就可以使用多个 CLI 版本维护多个项目。如果您执行ng s,它将使用您的计算机CLI,如果您执行npm start(这是package.json 中的一个脚本来执行ng serve,它实际上将使用本地CLI 它使用正确的CLI 启动此应用程序。希望这有帮助
  • 从今天开始已针对 Angular 9 进行了更新(来源 NPM):0.901.1 -> 最新,0.1000.0-next.0 -> 下一个,0.8.9 -> v6-lts, 0.803.26 -> v8-lts, 0.13.10 -> v7-lts
【解决方案5】:

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

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

【讨论】:

  • 想发布相同的。看到0.12.4 飘来飘去,但这对我不起作用。
  • @M.Doe 正确的版本取决于您的 1angular-cli` 版本。看到这个:stackoverflow.com/a/59043569/6122411
【解决方案6】:

尝试升级到由于依赖问题而失败的 Ng8 后出现同样的问题。

npm uninstall @angular-devkit/build-angular

然后我用了,

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

修复它...

【讨论】:

  • 有时此解决方案不可行,因为它的版本可能不是某人的要求。删除包锁jsonnpm i @angular-devkit/build-angular
【解决方案7】:

我遇到了同样的问题,但是感谢 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" 并且成功了。

【讨论】:

  • 需要注意的是,@angular-devkit/build-angular 的“0.13.4”版本在使用延迟加载组件时存在问题。为了避免这个问题,用户需要更新他们的@angular-devkit/build-angular 包......所以在这里进行权衡......
【解决方案8】:

这发生在我安装 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"

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

【讨论】:

  • 虽然它有效,但我建议@angular-devkit/build-angular": "0.13.8"因为它似乎是有效的最新版本
  • 非常感谢。似乎通过引导版本或依赖项不会让我高于 0.13.4,但它适用于许多人
  • 使用 0.13.8(基本上低于 0.800。*)我得到:An unhandled exception occurred: Could not find the implementation for builder @angular-devkit/build-angular:browser See "/tmp/ng-5iKcHN/angular-errors.log" for further details. 使用最新版本时,我从标题中得到错误。现在该怎么办?
【解决方案9】:

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

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

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

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

【讨论】:

    【解决方案10】:

    我也遇到了这个问题,并努力解决了几个小时,我尝试了上述所有选项,但都没有解决我的问题。由于 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

    它解决了我的问题。

    【讨论】:

      【解决方案11】:

      在我这边是包裹

      @angular-devkit/build-angular

      @angular-devkit/build-ng-packagr

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

      【讨论】:

        【解决方案12】:

        如果您移动到角度 8 或 9,这将解决问题

        ng update @angular/cli
        

        【讨论】:

          【解决方案13】:

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

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

          【讨论】:

            【解决方案14】:

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

            ng update @angular/cli @angular/core
            

            Angular documentation

            【讨论】:

              【解决方案15】:

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

              【讨论】:

              • 我试过了,它给了我同样的错误错误:数据路径“”不应该有额外的属性(es5BrowserSupport)。
              【解决方案16】:

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

              【讨论】:

              • 很高兴知道我为什么会投反对票。这是一个干净的答案,无需尝试一些“解决方法”
              • 因为和node版本无关,应该是angular-cli版本。
              • 我刚遇到这个问题,我认为不是angular-cli版本,它与angular-cli有关,但受节点版本影响。
              【解决方案17】:

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

              我最初的目标是使用 VSCode 修复我的项目有时CONSTANT COMPILING

              我尝试了很多很多方法,但 NOTHING 不起作用——该项目只是 不会编译!

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

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

              最后我删除了之前克隆的项目AGAIN(好几次),又克隆了AGAIN(也好几次)DID除了运行“npm install”,一切都开始工作了

              我在这里学到的教训是:

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

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

              幸运的是,我的项目的 CONSTANT COMPILING 只发生一次,而不是一直发生。不是固定的,但我得忍着,不然我的项目连编译都编译不了。

              【讨论】:

                【解决方案18】:

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

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

                【讨论】:

                  猜你喜欢
                  • 2021-01-28
                  • 1970-01-01
                  • 1970-01-01
                  • 2019-10-25
                  • 2021-06-19
                  • 1970-01-01
                  • 2019-11-25
                  • 1970-01-01
                  • 2020-07-11
                  相关资源
                  最近更新 更多