将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-版本信息
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
答案 0 :(得分:13)
我只是重新运行
ng serve
再次成功!
答案 1 :(得分:2)
我在同一个问题上苦苦挣扎,做了一些挖掘,发现了两个主要的解决方案:
请参阅此GitHub问题here。
答案 2 :(得分:2)
使用 ng serve
再次运行应用程序,它为我解决了该问题。
当我将代码从一个分支拉到通过ng serve运行的现有运行分支时,发生了这种情况。
答案 3 :(得分:2)
从版本中解决
npm我@ angular-devkit / build-angular @ 0.803.7 -s
选中此https://www.npmjs.com/package/@angular-devkit/build-angular
答案 4 :(得分:2)
https://github.com/ckeditor/ckeditor4-angular/issues/78#issuecomment-565803253
答案 5 :(得分:2)
免责声明:这不是一个很好的“解决方案”,但是如果您遇到紧急情况,它将可以完成工作。这是与Angular devkit和构建优化器有关的问题,与版本不匹配有关。
我遇到了这个问题,并找到了解决方法,以防升级Angular或其他NPM软件包不是使事情立即工作的理想选择。 This comment on Github为我指明了正确的方向。在项目目录中的文件./node_modules/@angular-devkit/build-optimizer/src/transforms/scrub-file.js
中,第237行附近有一个名为isAngularDecoratorMetadataExpression
的函数(取决于您使用的版本)。该函数底部的代码如下:
// 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
答案 6 :(得分:1)
我也有这个问题。我通过将本地@ angular / cli更新为与项目中的@ anguluar / cli版本相同的版本来解决了该问题。
答案 7 :(得分:1)
将打字稿devDependency从3.9.0更新到4.0.3并运行ng g c [目录名] --skip-import
答案 8 :(得分:0)
对于此错误,TypeError:无法读取getAssignmentTargetKind上未定义的属性“种类”,这对我有用
答案 9 :(得分:0)
可以通过重新启动解决此问题:
使用 ng服务
答案 10 :(得分:0)
在我的情况下,问题是我有@Injectable的抽象类,将其删除即可解决问题。
希望有帮助
答案 11 :(得分:0)
当我尝试在生产模式下运行角度应用程序时遇到了同样的问题
我尝试了这个npm i @angular-devkit/build-angular
,它很有帮助
答案 12 :(得分:0)
在构建应用程序时出现此错误,我在angular.json中修改了构建配置,它起作用了!
{
...
"configurations": {
"production": {
budgets: [
"initial": true,
minimum: 5mb,
maximum: 8mb
],
"common-chunk": true
"vendor-chunk": true
}
}
}
答案 13 :(得分:0)
在我的情况下,将package.json中的@ angular-builders / custom-webpack从版本10.0.1
降级到版本10.0.0
即可。
答案 14 :(得分:0)
对我来说,serve
命令运行良好,但 build
命令出现错误。
错误是,因为我们使用的是自定义构建器“@angular-builders/custom-webpack
”。此软件包的版本导致了问题。
一旦我按照我们的 angular 版本安装了这个包的正确版本,问题就解决了。
答案 15 :(得分:0)
我遇到了这个问题,结果证明 @angular-devkit/build-angular
在我尝试为 prod 构建时在 devDependencies
中 - 因此将其移至 dependencies
解决了问题。>