32

将我的 Angular 6 项目更新到 7.x 时开始出现此问题。

我在 angular-cli github repo 上打开了一个问题,但他们无能为力。

所以我所做的是创建一个新项目并一一添加所有组件以“希望”注意到导致问题的原因。

不幸的是,我无法确定问题所在。这是日志:

ERROR in : TypeError: Cannot read property 'kind' of undefined
at getAssignmentTargetKind (E:\McClient\node_modules\typescript\lib\typescript.js:10049:28)
at Object.isAssignmentTarget (E:\McClient\node_modules\typescript\lib\typescript.js:10092:16)
at checkObjectLiteral (E:\McClient\node_modules\typescript\lib\typescript.js:46107:45)
at checkExpressionWorker (E:\McClient\node_modules\typescript\lib\typescript.js:50748:28)
at checkExpression (E:\McClient\node_modules\typescript\lib\typescript.js:50696:42)
at checkExpressionWithContextualType (E:\McClient\node_modules\typescript\lib\typescript.js:50524:26)
at checkApplicableSignature (E:\McClient\node_modules\typescript\lib\typescript.js:47963:35)
at chooseOverload (E:\McClient\node_modules\typescript\lib\typescript.js:48281:26)
at resolveCall (E:\McClient\node_modules\typescript\lib\typescript.js:48231:26)
at resolveCallExpression (E:\McClient\node_modules\typescript\lib\typescript.js:48534:20)
at resolveSignature (E:\McClient\node_modules\typescript\lib\typescript.js:48800:28)
at getResolvedSignature (E:\McClient\node_modules\typescript\lib\typescript.js:48844:26)
at checkCallExpression (E:\McClient\node_modules\typescript\lib\typescript.js:48936:29)
at checkExpressionWorker (E:\McClient\node_modules\typescript\lib\typescript.js:50759:28)
at checkExpression (E:\McClient\node_modules\typescript\lib\typescript.js:50696:42)
at resolveDecorator (E:\McClient\node_modules\typescript\lib\typescript.js:48741:28)

这是 github 问题的链接,其中包含我应该记录的 checkSourcefile 函数的日志:

https://github.com/angular/angular-cli/issues/13172

我如何追踪并(希望)解决导致此问题的原因?

编辑:我的 ng --version 信息

Angular CLI: 7.1.3
Node: 8.11.4
OS: win32 x64
Angular: 7.1.3
... animations, cli, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.11.3
@angular-devkit/build-angular     0.11.3
@angular-devkit/build-optimizer   0.11.3
@angular-devkit/build-webpack     0.11.3
@angular-devkit/core              7.1.3
@angular-devkit/schematics        7.1.3
@angular/cdk                      7.1.1
@ngtools/webpack                  7.1.3
@schematics/angular               7.1.3
@schematics/update                0.11.3
rxjs                              6.3.3
typescript                        3.1.6
webpack                           4.23.1
4

16 回答 16

17

我只是重新运行

    ng serve

又一次,它奏效了!

于 2019-02-12T07:23:15.510 回答
4

我在同样的问题上苦苦挣扎,做了一些挖掘并找到了两个主要的解决方案:

  1. 安装“@types/history”包。
  2. 将 typescript 降级到 3.1.6(因为那时还没有出现 bug)。

在此处查看此 GitHub 问题。

于 2019-02-27T07:43:09.217 回答
4

免责声明:这不是一个好的“修复”,但如果你处于紧要关头,它会完成工作。这是一个与 Angular devkit 和构建优化器相关的问题,并且与版本不匹配有关。

我遇到了这个问题,并找到了一种解决方法,以防升级 Angular 或其他 NPM 包不是让事情立即工作的理想选择。Github 上的这条评论为我指明了正确的方向。在您的项目目录中的文件./node_modules/@angular-devkit/build-optimizer/src/transforms/scrub-file.js中,有一个isAngularDecoratorMetadataExpression在第 237 行附近调用的函数(取决于您拥有的版本)。它在函数的底部有以下代码:

// Check second array entry for __metadata call.
if (decorateArray.elements[1].kind !== ts.SyntaxKind.CallExpression) {
  return false;
}

如果您在这些行上方添加此代码并保存文件,它将绕过该问题:

// Workaround for missing metadata.
if(!decorateArray.elements[1]) {
  return false;
}

完成此操作后,运行此命令以尝试再次构建您的项目:

node --max_old_space_size=4096 ./node_modules/@angular/cli/bin/ng build --prod --build-optimizer
于 2020-06-11T22:58:49.393 回答
4

使用再次运行该应用程序 ng serve,它为我解决了这个问题。当我将代码从一个分支拉到我现有的通过 ng serve 运行的正在运行的分支时,就会发生这种情况。

于 2019-04-02T12:53:59.907 回答
2

我也有这个问题。我通过将我的本地 @angular/cli 更新为与我项目中的 @anguluar/cli 版本相同的版本来解决它。

于 2019-04-08T10:48:45.920 回答
2
  • 我在将离子应用程序从 V4 迁移到 V5 时遇到问题。
  • 这是我的错误日志图像。

在此处输入图像描述

  • 使用以下解决方案对其进行了修复。

https://github.com/ckeditor/ckeditor4-angular/issues/78#issuecomment-565803253

于 2020-03-03T06:42:16.437 回答
2

它从版本解决

npm i @angular-devkit/build-angular@0.803.7 -s

检查这个https://www.npmjs.com/package/@angular-devkit/build-angular

于 2020-01-28T13:25:00.963 回答
2

在我的情况下,将 package.json 中的 @angular-builders/custom-webpack 从一个版本降级到另一个版本10.0.1是可行的10.0.0

于 2020-11-30T11:08:19.913 回答
1

将 typescript devDependency 从 3.9.0 更新到 4.0.3 并运行 ng gc [directory-name] --skip-import

于 2020-10-04T18:47:36.620 回答
1

当我尝试在生产模式下运行 Angular 应用程序时遇到了同样的问题

我试过这个 npm i @angular-devkit/build-angular,它有帮助

于 2020-07-13T07:25:17.810 回答
1

我遇到了这个问题,事实证明那@angular-devkit/build-angular是在devDependencies我试图为 prod 构建的时候——所以移动它来dependencies解决问题。

于 2021-06-26T22:04:29.743 回答
0

就我而言,问题是我有带有@Injectable 的抽象类,删除它解决了这个问题。

希望它有帮助

于 2020-02-01T18:22:45.447 回答
0

我在构建应用程序时遇到了这个错误,我在 angular.json 中修改了构建配置,它起作用了!!

{
  ...
  "configurations": {
    "production": {
      budgets: [
        "initial": true,
        minimum: 5mb,
        maximum: 8mb
      ],
      "common-chunk": true
      "vendor-chunk": true
    }
  }
}
于 2020-08-07T03:18:46.223 回答
0

对我来说,该serve命令运行良好,但该build命令给出了错误。

错误是,因为我们使用的是自定义构建器“ @angular-builders/custom-webpack”。这个包的版本导致了这个问题。

一旦我按照我们的角度版本安装了这个包的正确版本,问题就解决了。

于 2021-01-07T15:09:42.197 回答
0

好吧,我终于通过在运行 ng serve 时添加 --poll 1000 来解决这个问题:

ng 服务 --poll 1000

于 2021-08-23T20:41:20.853 回答
-2

这个问题可以通过重启解决:

使用ng 服务

于 2019-05-15T10:05:57.470 回答