我尝试用角CLI ng build --prod构建项目,并得到了以下错误:
TypeError中的错误:无法读取未定义的属性“类别”
如果我使用非--prod 构建,则不会得到任何错误。
完全错误:
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)角版:
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谢谢。
发布于 2019-10-01 16:01:37
请记住,TypeScript 3.6.4已经发布。仍然可以在下面阅读那些不起作用的内容。
TypeScript <= 3.6.3提出了这个问题,在isParameterPropertyDeclaration中处理无父节点。
如果您安装了3.7 (dev或新的beta),它将编译得很好。
注意:如果您在构建时收到一个ERROR,关于TS版本,只需通过tsconfig禁用它即可。
为此,请使用disableTypeScriptVersionCheck
"angularCompilerOptions": {
"disableTypeScriptVersionCheck": true
},
"compilerOptions": {
...如果有任何其他问题出现,请关注评论的聊天内容。
发布于 2020-07-22 13:08:21
这个问题在很多情况下都会发生,其中一个主要原因是安装了@ are /cli的版本与全局安装的@ar角/cli版本不同,请确保两者都是相同的版本。在其他情况下,您必须更新devkit。
请看一下这些线程,您将得到一个想法:
发布于 2020-03-27 14:04:04
虽然这个问题特别指出isParameterPropertyDeclaration是错误的来源,但这个问题是谷歌在搜索以下非常类似的错误时唯一链接到的问题:
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.optimization从true更改为false)。
如果您是一个库所有者,试图完全支持owner的版本6和7,那么在库的tsconfig.json中,将compilerOptions.emitDecoratorMetadata设置为true并重新编译。从现在开始,您将从装饰器导出所有元数据,Angular将对导出的元数据执行.kind,从而解决了原来是undefined的问题。
https://stackoverflow.com/questions/57891605
复制相似问题