TypeError: невозможно прочитать свойство «вид» неопределенного в getAssignmentTargetKind

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

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

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

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

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

person rawk    schedule 18.12.2018    source источник
comment
Убедитесь, что вы выполнили все шаги, показанные здесь для миграции — update.angular.io, а затем попробуйте чтобы удалить все ваши node_modules и переустановить их, используя npm install   -  person Tushar Walzade    schedule 18.12.2018
comment
Я уже пробовал это - не повезло   -  person rawk    schedule 18.12.2018


Ответы (15)


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

    ng serve

еще раз и все заработало!

person David Njuguna    schedule 12.02.2019
comment
Ну да. Но это раздражает делать это ~ 50 раз в день. Все еще ищу фактическое исправление - person rawk; 12.02.2019
comment
Это решило и для меня, и просто примечание: со мной начала происходить ошибка, когда я добавил собственный код javascript в свое приложение Angular (Typescript) - person JanBrus; 19.04.2021

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

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

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

person Lastsword    schedule 27.02.2019

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

person Franklin Pious    schedule 02.04.2019

Отказ от ответственности: это не очень хорошее "исправление", но оно поможет, если вы окажетесь в затруднительном положении. Это проблема, связанная с комплектом разработчика Angular и оптимизатором сборки и связанная с несоответствием версий.

Я столкнулся с этой проблемой и нашел обходной путь в случае, если обновление 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
person aecend    schedule 11.06.2020
comment
Это просто обходной путь. Вы нашли решение для этого? - person Hoang Tran Son; 09.07.2020

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

person Bert    schedule 08.04.2019

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

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

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

person Mohamed Abo Elmagd    schedule 28.01.2020

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

введите здесь описание изображения

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

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

person Nanda Kishore Allu    schedule 03.03.2020

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

person Michael Goppelt    schedule 30.11.2020

Обновление typescript devDependency с 3.9.0 до 4.0.3 и запуск ng g c [directory-name] --skip-import

person Rahul Reddy    schedule 04.10.2020
comment
Приведенное выше решение отлично работает, когда возникает ошибка: Option entryComponent устарел: Начиная с версии 9.0.0 с Ivy, entryComponents больше не нужен. не может прочитать тип свойства undefined - person Rahul Reddy; 04.10.2020

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

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

person Luis Moreno    schedule 01.02.2020

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

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

person Arokia Lijas    schedule 13.07.2020

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

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

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

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

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

person Abhishek Tewari    schedule 07.01.2021

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

person Aaron King    schedule 26.06.2021

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

Используйте ng serve

person Omkar Joshi    schedule 15.05.2019