Angular cli build prod: TypeError: Cannot read property 'kind' of undefined
Angular cli build prod: TypeError: Cannot read property 'kind' of undefined
我尝试使用 Angular CLI ng build --prod
构建项目,但出现此错误:
ERROR in TypeError: Cannot read property 'kind' of undefined
如果我构建时没有 --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版本:
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
谢谢。
现在记住 TypeScript 3.6.4 已经出来了。不过,阅读下面没有真正工作的内容是可以的。
TypeScript <= 3.6.3
出现了这个问题,Handle parentless nodes in isParameterPropertyDeclaration。
如果您安装 3.7
(dev
或新的 beta
),它将正常编译。
注意:如果您在构建时收到关于 TS 版本的 ERROR
,只需通过 tsconfig
将其禁用即可。
为此使用 disableTypeScriptVersionCheck
"angularCompilerOptions": {
"disableTypeScriptVersionCheck": true
},
"compilerOptions": {
...
如果出现任何其他问题,请关注评论的聊天。
尽管该问题明确指出 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
.
的问题
我遇到了同样的问题并通过将我的 typescript
依赖项更新到最新的稳定版本解决了这个问题。
在我的例子中,我有版本 3.7
,我通过升级到 3.8
来解决问题。
很多情况下都会出现此问题,主要原因之一是@angular/cli 的安装版本与@angular/cli 的全局安装版本不同,确保两者是相同的版本。在其他情况下,您必须更新 devkit。
请看看这些线程,你会得到一个想法:
当我将 ng-recaptcha v6.0.2 与 angular v6.2.2
一起使用时,我 运行 参与其中
对我来说,解决方法是在 angular.json
中将 buildOptimizer 设置为 false
"configurations": {
"development": {
"buildOptimizer": false
}
}
我尝试使用 Angular CLI ng build --prod
构建项目,但出现此错误:
ERROR in TypeError: Cannot read property 'kind' of undefined
如果我构建时没有 --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版本:
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
谢谢。
现在记住 TypeScript 3.6.4 已经出来了。不过,阅读下面没有真正工作的内容是可以的。
TypeScript <= 3.6.3
出现了这个问题,Handle parentless nodes in isParameterPropertyDeclaration。
如果您安装 3.7
(dev
或新的 beta
),它将正常编译。
注意:如果您在构建时收到关于 TS 版本的 ERROR
,只需通过 tsconfig
将其禁用即可。
为此使用 disableTypeScriptVersionCheck
"angularCompilerOptions": {
"disableTypeScriptVersionCheck": true
},
"compilerOptions": {
...
如果出现任何其他问题,请关注评论的聊天。
尽管该问题明确指出 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
.
我遇到了同样的问题并通过将我的 typescript
依赖项更新到最新的稳定版本解决了这个问题。
在我的例子中,我有版本 3.7
,我通过升级到 3.8
来解决问题。
很多情况下都会出现此问题,主要原因之一是@angular/cli 的安装版本与@angular/cli 的全局安装版本不同,确保两者是相同的版本。在其他情况下,您必须更新 devkit。
请看看这些线程,你会得到一个想法:
当我将 ng-recaptcha v6.0.2 与 angular v6.2.2
一起使用时,我 运行 参与其中对我来说,解决方法是在 angular.json
中将 buildOptimizer 设置为 false"configurations": {
"development": {
"buildOptimizer": false
}
}