首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角: TypeError:无法读取未定义的属性“种类”

角: TypeError:无法读取未定义的属性“种类”
EN

Stack Overflow用户
提问于 2019-09-11 14:41:33
回答 5查看 19.2K关注 0票数 16

我尝试用角CLI ng build --prod构建项目,并得到了以下错误:

TypeError中的错误:无法读取未定义的属性“类别”

如果我使用非--prod 构建,则不会得到任何错误。

完全错误:

代码语言:javascript
复制
ERROR in TypeError: Cannot read property 'kind' of undefined
    at isParameterPropertyDeclaration (node_modules/typescript/lib/typescript.js:13445:88)
    at Object.filter (node_modules/typescript/lib/typescript.js:469:31)
    at transformClassMembers (node_modules/typescript/lib/typescript.js:70813:20)
    at createClassDeclarationHeadWithoutDecorators (node_modules/typescript/lib/typescript.js:70665:110)
    at visitClassDeclaration (node_modules/typescript/lib/typescript.js:70584:19)
    at visitTypeScript (node_modules/typescript/lib/typescript.js:70432:28)
    at visitorWorker (node_modules/typescript/lib/typescript.js:70227:24)
    at sourceElementVisitorWorker (node_modules/typescript/lib/typescript.js:70252:28)
    at saveStateAndInvoke (node_modules/typescript/lib/typescript.js:70165:27)
    at sourceElementVisitor (node_modules/typescript/lib/typescript.js:70237:20)
    at visitNodes (node_modules/typescript/lib/typescript.js:67751:48)
    at Object.visitLexicalEnvironment (node_modules/typescript/lib/typescript.js:67784:22)
    at visitSourceFile (node_modules/typescript/lib/typescript.js:70521:53)
    at saveStateAndInvoke (node_modules/typescript/lib/typescript.js:70165:27)
    at transformSourceFile (node_modules/typescript/lib/typescript.js:70147:27)
    at transformSourceFileOrBundle (node_modules/typescript/lib/typescript.js:70127:20)

角版:

代码语言:javascript
复制
Angular CLI: 8.3.3
Node: 12.9.0
OS: darwin x64
Angular: 9.0.0-next.5
... animations, common, compiler, compiler-cli, core, forms
... language-service, localize, platform-browser
... platform-browser-dynamic, router

Package                            Version
------------------------------------------------------------
@angular-devkit/architect          0.900.0-next.3
@angular-devkit/build-angular      0.900.0-next.3
@angular-devkit/build-optimizer    0.900.0-next.3
@angular-devkit/build-webpack      0.900.0-next.3
@angular-devkit/core               9.0.0-next.3
@angular-devkit/schematics         8.3.3
@angular/cdk                       8.1.4
@angular/cli                       8.3.3
@angular/http                      8.0.0-beta.10
@angular/material                  8.1.4
@angular/material-moment-adapter   8.1.4
@ngtools/webpack                   9.0.0-next.3
@schematics/angular                8.3.3
@schematics/update                 0.803.3
rxjs                               6.5.3
typescript                         3.6.3
webpack                            4.39.3

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-10-01 16:01:37

请记住,TypeScript 3.6.4已经发布。仍然可以在下面阅读那些不起作用的内容。

TypeScript <= 3.6.3提出了这个问题,在isParameterPropertyDeclaration中处理无父节点

如果您安装了3.7 (dev或新的beta),它将编译得很好。

注意:如果您在构建时收到一个ERROR,关于TS版本,只需通过tsconfig禁用它即可。

为此,请使用disableTypeScriptVersionCheck

代码语言:javascript
复制
"angularCompilerOptions": {
  "disableTypeScriptVersionCheck": true
},
"compilerOptions": {
 ...

如果有任何其他问题出现,请关注评论的聊天内容。

票数 12
EN

Stack Overflow用户

发布于 2020-07-22 13:08:21

这个问题在很多情况下都会发生,其中一个主要原因是安装了@ are /cli的版本与全局安装的@ar角/cli版本不同,请确保两者都是相同的版本。在其他情况下,您必须更新devkit。

请看一下这些线程,您将得到一个想法:

  1. https://github.com/angular/angular-cli/issues/13172
  2. https://github.com/angular/angular-cli/issues/13861
票数 4
EN

Stack Overflow用户

发布于 2020-03-27 14:04:04

虽然这个问题特别指出isParameterPropertyDeclaration是错误的来源,但这个问题是谷歌在搜索以下非常类似的错误时唯一链接到的问题:

代码语言:javascript
复制
ERROR in ./node_modules/some_library/...
Module build failed (from ./node_modules/@angular-devkit/build-optimizer/src/build-optimizer/webpack-loader.js):
TypeError: Cannot read property 'kind' of undefined

由于我找不到任何好的答案,上面的错误,我张贴在这里,以供参考。

如果使用受此错误影响的库,则应将@angular/cli版本升级到8或禁用生产模式中的优化(要禁用优化,请将projects.your_project_name.architect.build.configurations.production.optimizationtrue更改为false)。

如果您是一个库所有者,试图完全支持owner的版本6和7,那么在库的tsconfig.json中,将compilerOptions.emitDecoratorMetadata设置为true并重新编译。从现在开始,您将从装饰器导出所有元数据,Angular将对导出的元数据执行.kind,从而解决了原来是undefined的问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57891605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档