TypeError: невозможно прочитать свойство 'kind' undefined в getAssignmentTargetKind

Эта проблема начала возникать при обновлении моего проекта Angular 6 до 7.x.

Я открыл проблему с репозиторием github angular-cli, но они не смогли помочь.

Итак, я создал новый проект и добавил все компоненты один за другим, чтобы «надеюсь» заметить причину проблемы.

К сожалению, я не смог определить проблему. Вот журнал:

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

Убедитесь, что вы выполнили все шаги, показанные здесь для миграции - update.angular.io, а затем попробуйте удалить все ваши node_modules и переустановить их с помощью npm install

Tushar Walzade 18.12.2018 08:39

Я уже пробовал - не повезло

rawk 18.12.2018 09:28
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
32
2
41 870
16

Ответы 16

Я просто перезапускаю

    ng serve

снова и это сработало!

Ну да. Но делать это ~ 50 раз в день раздражает. Все еще ищу актуальное решение

rawk 12.02.2019 08:29

Это тоже решило для меня, и просто примечание: у меня началась ошибка, когда я добавил пользовательский код javascript в свое приложение Angular (Typescript)

JanBrus 19.04.2021 15:53

Я боролся с той же проблемой, покопался и нашел 2 основных решения:

  1. Установка пакета @ types / history.
  2. Понижение версии машинописного текста до 3.1.6 (поскольку ошибка не возникала тогда).

См. Эту проблему GitHub здесь.

Снова запустите приложение, используяng serve, и это устранило проблему для меня. Это произошло, когда я вытащил код из ветки в мою существующую работающую ветку, которая работала через ng serve.

У меня тоже была такая проблема. Я решил это, обновив свой локальный @ angular / cli до той же версии, что и версия @ anguluar / cli в моем проекте.

Эту проблему можно решить перезапуском:

Используйте нг подавать

Решено с версии

npm i @angular-devkit/[email protected] -s

проверьте это https://www.npmjs.com/package/@angular-devkit/build-angular

В моем случае проблема заключалась в том, что у меня были абстрактные классы с @Injectable, удаление которых решило проблему.

Надеюсь, это поможет

  • У меня возникла проблема при переносе ионного приложения с V4 на V5.
  • Это мое изображение журнала ошибок.

  • Это было исправлено с помощью следующего решения.

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

Заявление об ограничении ответственности: это не очень хорошее «исправление», но оно выполнит свою работу, если вы в затруднительном положении. Это проблема, связанная с 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

Это просто обходной путь. Вы нашли решение для этого?

Tran Son Hoang 09.07.2020 15:46

Для меня это достаточно хорошее исправление. Проект находится в унитазе, и мне было бы наплевать, чтобы исправить это, поскольку проект находится в NG6, и у нас в разработке есть замена, использующая 11.

Elijah 16.11.2021 16:29

У меня была такая же проблема, когда я пытался запустить приложение angular в производственном режиме

Я попробовал этот npm i @angular-devkit/build-angular, и это помогло

Я получил эту ошибку при создании приложения, я изменил конфигурации сборки в angular.json, это сработало !!

{
  ...
  "configurations": {
    "production": {
      budgets: [
        "initial": true,
        minimum: 5mb,
        maximum: 8mb
      ],
      "common-chunk": true
      "vendor-chunk": true
    }
  }
}

Обновление машинописного кода devDependency с 3.9.0 до 4.0.3 и запуск ng g c [имя-каталога] --skip-import

Вышеупомянутое решение отлично работает, когда возникла ошибка, если "Option" entryComponent "устарел: начиная с версии 9.0.0 с Ivy, entryComponents больше не требуется. Невозможно прочитать свойство" kind "of undefined"

Rahul Reddy 04.10.2020 20:50

В моем случае сработало понижение версии @ angular-builders / custom-webpack с версии 10.0.1 до версии 10.0.0 в package.json.

Для меня команда serve работала нормально, но команда build выдала ошибку.

Ошибка заключалась в том, что мы использовали специальный компоновщик «@angular-builders/custom-webpack». Версия этого пакета вызвала проблему.

Как только я установил правильную версию этого пакета в соответствии с нашей угловой версией, проблема была решена.

Я столкнулся с этой проблемой, и оказалось, что @angular-devkit/build-angular был в devDependencies, когда я пытался собрать для prod, поэтому переход на dependencies решил проблему.

Наконец-то я решил эту проблему, добавив --poll 1000 при запуске ng serve:

ng serve --poll 1000

Другие вопросы по теме