J'essaie de construire un projet avec Angular CLI ng build --prod
et j'obtiens cette erreur:
ERREUR dans TypeError: Impossible de lire la propriété 'kind' d'undefined
si je construis avec pas de --prod
Je ne reçois aucune erreur
Erreur complète:
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)
Version angulaire:
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
Merci.
Gardez à l'esprit maintenant TypeScript 3.6.4 est sorti. Pourtant, il est correct de lire ci-dessous ce qui ne fonctionnait pas vraiment.
TypeScript <= 3.6.3
présente ce problème, Gérer les nœuds sans parent dans isParameterPropertyDeclaration .
Si vous installez 3.7
(dev
ou le nouveau beta
), il se compilera très bien.
Remarque: si vous recevez un ERROR
lors de la construction, concernant la version TS, désactivez-le simplement via tsconfig
.
Pour cela, utilisez disableTypeScriptVersionCheck
"angularCompilerOptions": {
"disableTypeScriptVersionCheck": true
},
"compilerOptions": {
...
Suivez le chat du commentaire si un autre problème survient.
Bien que la question indique spécifiquement isParameterPropertyDeclaration
comme source de l'erreur, cette question est la seule liée par Google lors de la recherche de l'erreur très similaire suivante:
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
Comme je n'ai pas trouvé de bonne réponse à l'erreur ci-dessus, je la poste ici pour référence.
Si vous utilisez une bibliothèque affectée par cette erreur, vous devez mettre à jour votre @angular/cli
version à 8 ou désactivez l'optimisation en mode production (pour désactiver l'optimisation, modifiez projects.your_project_name.architect.build.configurations.production.optimization
de true
à false
).
Si vous êtes un propriétaire de bibliothèque essayant de prendre entièrement en charge les versions 6 et 7 d'Angular, dans le tsconfig.json
de votre bibliothèque, définissez compilerOptions.emitDecoratorMetadata
à true
et recompilez. Puisque maintenant vous exportez toutes les métadonnées des décorateurs, Angular fera .kind
des métadonnées exportées, corrigeant le problème où il se trouvait undefined
.
J'ai eu le même problème et l'ai résolu en mettant à jour ma dépendance TypeScript
vers la dernière version stable.
Dans mon cas, j'avais la version 3.7
et j'ai résolu le problème en passant à 3.8
.