32

この問題は、Angular 6 プロジェクトを 7.x に更新したときに発生し始めました。

angular-cli github リポジトリでイシューをオープンしましたが、解決できませんでした。

だから私がしたことは、新しいプロジェクトを作成し、すべてのコンポーネントを1つずつ追加して、問題の原因に「うまくいけば」気付くことです。

残念ながら、問題を特定できませんでした。ログは次のとおりです。

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)

ログに記録するはずだったcheckSourcefile関数からのログを含むgithubの問題へのリンクは次のとおりです。

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

4

免責事項:これは適切な "修正" ではありませんが、ピンチの場合は問題を解決できます。これは、Angular devkit とビルド オプティマイザーに関連する問題であり、バージョンの不一致に関係しています。

私はこの問題に遭遇し、Angular またはその他の NPM パッケージをアップグレードすることが、すぐに機能させるための理想的なオプションではない場合の回避策を見つけました。Github に関するこのコメントは、正しい方向を示してくれました。./node_modules/@angular-devkit/build-optimizer/src/transforms/scrub-file.jsプロジェクト ディレクトリのファイルには、 isAngularDecoratorMetadataExpression237 行目付近で呼び出される関数があります (使用しているバージョンによって異なります)。関数の下部に次のコードがあります。

// 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 に答える
2

私の場合、package.json で @angular-builders/custom-webpack をバージョン10.0.1からバージョン10.0.0にダウングレードするとうまくいきました。

于 2020-11-30T11:08:19.913 に答える
0

アプリケーションのビルド中にこのエラーが発生しました。Angular.json のビルド構成を変更しましたが、うまくいきました!!

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

この問題は、再起動することで解決できます。

ng サーブを使用する

于 2019-05-15T10:05:57.470 に答える