Эта проблема начала возникать при обновлении моего проекта 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
Я уже пробовал - не повезло
Я просто перезапускаю
ng serve
снова и это сработало!
Ну да. Но делать это ~ 50 раз в день раздражает. Все еще ищу актуальное решение
Это тоже решило для меня, и просто примечание: у меня началась ошибка, когда я добавил пользовательский код javascript в свое приложение Angular (Typescript)
Я боролся с той же проблемой, покопался и нашел 2 основных решения:
См. Эту проблему 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, удаление которых решило проблему.
Надеюсь, это поможет
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
Это просто обходной путь. Вы нашли решение для этого?
Для меня это достаточно хорошее исправление. Проект находится в унитазе, и мне было бы наплевать, чтобы исправить это, поскольку проект находится в NG6, и у нас в разработке есть замена, использующая 11.
У меня была такая же проблема, когда я пытался запустить приложение 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"
В моем случае сработало понижение версии @ 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
Убедитесь, что вы выполнили все шаги, показанные здесь для миграции - update.angular.io, а затем попробуйте удалить все ваши node_modules и переустановить их с помощью
npm install