TypeError: Невозможно прочитать свойство 'kind' undefined в 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
Как я могу отследить и (надеюсь) устранить причину этого?
Редактировать: Моя нг - Информация о версии
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
17 ответов
Отказ от ответственности: это не очень хорошее "исправление", но оно выполнит свою работу, если вы окажетесь в затруднительном положении. Это проблема, связанная с 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
Я боролся с той же проблемой, немного покопался и нашел 2 основных решения:
- Установка пакета @types/history.
- Понижение машинописи до 3.1.6(поскольку ошибки тогда не было).
Смотрите эту проблему GitHub здесь.
Запустите приложение еще раз, используя ng serve
и это решило проблему для меня. Это произошло, когда я вытащил код из ветки в существующую ветку, которая работала через ng serve.
Я столкнулся с этой проблемой, и оказалось, что
@angular-devkit/build-angular
был в
devDependencies
когда я пытался создать для продакшена - так что переместил это на
dependencies
решил проблему.
Решено с версии
npm я @angular-devkit/build-angular@0.803.7 -s
проверьте это https://www.npmjs.com/package/@angular-devkit/build-angular
У меня тоже была эта проблема. Я решил эту проблему, обновив свой локальный @angular/cli до той же версии, что и версия @anguluar/cli в моем проекте.
- У меня возникла проблема при переносе ионного приложения с V4 на V5.
- Это мое изображение журнала ошибок.
- Это было исправлено с помощью следующего решения.
В моем случае понижение версии @angular-builders/custom-webpack с версии
10.0.1
к версии
10.0.0
в package.json работал.
У меня была такая же проблема, когда я пытался запустить приложение angular в производственном режиме
Я пробовал это npm i @angular-devkit/build-angular
и это помогло
Эта проблема может быть решена путем перезапуска:
Используйте нг подачу
Обновление машинописного кода devDependency с 3.9.0 до 4.0.3 и запуск ng g c [имя-каталога] --skip-import
Для меня
serve
команда работала нормально, но
build
команда выдала ошибку.
Ошибка заключалась в том, что мы использовали собственный конструктор '
@angular-builders/custom-webpack
'. Версия этого пакета вызвала проблему.
Как только я установил правильную версию этого пакета в соответствии с нашей угловой версией, проблема была решена.
Для этой ошибки TypeError: Невозможно прочитать свойство 'kind' undefined в getAssignmentTargetKind, это сработало для меня
Наконец-то я решил эту проблему, добавив --poll 1000 при запуске ng serve:
ng serve --poll 1000
В моем случае проблема заключалась в том, что у меня были абстрактные классы с @Injectable, удаление которых решило проблему.
Надеюсь, это поможет
Я получил эту ошибку при создании приложения, я изменил конфигурации сборки в angular.json, это сработало!!
{
...
"configurations": {
"production": {
budgets: [
"initial": true,
minimum: 5mb,
maximum: 8mb
],
"common-chunk": true
"vendor-chunk": true
}
}
}