我尝试使用Angular CLI function f(description /*: ?string */ = null, entrypoints /*: ?Array<Object> */ = null): void {}
构建项目,但出现此错误:
TypeError中的错误:无法读取未定义的属性“种类”
如果我使用的不是ng build --prod
,则不会出现任何错误
完整错误:
--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)
谢谢。
答案 0 :(得分:6)
现在要牢记 TypeScript 3.6.4已经发布。不过,可以在下面阅读并非真正有效的内容。
TypeScript <= 3.6.3
出现了此问题,Handle parentless nodes in isParameterPropertyDeclaration。
如果您安装3.7
(dev
或新的beta
),它将可以正常编译。
请注意:如果您收到有关建筑物版本的ERROR
,请通过tsconfig
禁用它。
为此,请使用disableTypeScriptVersionCheck
"angularCompilerOptions": {
"disableTypeScriptVersionCheck": true
},
"compilerOptions": {
...
如果出现其他任何问题,请按照评论聊天。
答案 1 :(得分:2)
尽管该问题明确指出isParameterPropertyDeclaration
是错误的根源,但该问题是Google在搜索以下非常相似的错误时唯一链接的问题:
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
)。
如果您是试图完全支持Angular版本6和7的图书馆所有者,请在图书馆的tsconfig.json
中将compilerOptions.emitDecoratorMetadata
设置为true
,然后重新编译。从现在开始,您将从装饰器导出所有元数据,Angular将对导出的元数据执行.kind
,从而解决了undefined
的问题。
答案 2 :(得分:2)
在许多情况下都会出现此问题,主要原因之一是@ angular / cli的安装版本与@ angular / cli的全局安装版本不同。请确保两个版本都相同。在其他情况下,您必须更新devkit。
请看一下这些线程,您会发现一个主意:
答案 3 :(得分:0)
我遇到了相同的问题,并通过将typescript
依赖项更新到最新的稳定版本来解决了该问题。
就我而言,我有3.7
版本,并通过升级到3.8
解决了该问题。
答案 4 :(得分:0)
我在使用ng-recaptcha v6.0.2和angular v6.2.2时遇到了这个问题
对我来说,解决方法是将angular.json中的buildOptimizer设置为false
"configurations": {
"development": {
"buildOptimizer": false
}
}