Skip to content

AOT build error Cannot read property 'kind' of undefined #8434

Closed

Description

@samalexander

Bug Report or Feature Request (mark with an x)

- [x] bug report -> please search issues before submitting
- [ ] feature request

Versions.

Angular CLI: 1.5.0
Node: 8.5.0
OS: darwin x64
Angular: 5.0.1
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cdk: 5.0.0-rc0
@angular/cli: 1.5.0
@angular/flex-layout: 2.0.0-beta.10-4905443
@angular/material: 5.0.0-rc0
@angular-devkit/build-optimizer: 0.0.32
@angular-devkit/core: 0.0.20
@angular-devkit/schematics: 0.0.35
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.8.0
@schematics/angular: 0.1.2
typescript: 2.4.2
webpack-bundle-analyzer: 2.9.1
webpack: 3.8.1

Repro steps.

rm -rf node_modules/
yarn add @angular/cli@latest -D
ng build --aot

The log given by the failure.

ERROR in Error: TypeError: Cannot read property 'kind' of undefined at nodeCanBeDecorated (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:7805:35) at nodeIsDecorated (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:7825:16) at Object.nodeOrChildIsDecorated (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:7829:16) at isDecoratedClassElement (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:51668:23) at isInstanceDecoratedClassElement (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:51659:20) at Object.filter (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:1652:25) at getDecoratedClassElements (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:51641:23) at generateClassElementDecorationExpressions (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:51815:27) at addClassElementDecorationStatements (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:51804:44) at visitClassDeclaration (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:51131:13) at visitTypeScript (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:50972:28) at visitorWorker (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:50785:24) at sourceElementVisitorWorker (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:50817:28) at saveStateAndInvoke (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:50738:27) at sourceElementVisitor (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:50799:20) at visitNodes (/Users/sam/Developer/ng-prime/node_modules/typescript/lib/typescript.js:49280:48)

Desired functionality.

AOT build should be successful

Mention any other details that might be useful.

The project built fine with AOT enabled with CLI v1.4.9

Activity

  1. DavidDNA commented on Nov 10, 2017

    @DavidDNA

    Same issue here with @angular/cli 1.5.0

    Works without aot.

  2. added
    P3An issue that is relevant to core functions, but does not impede progress. Important, but not urgent
    on Nov 14, 2017
  3. Axure commented on Nov 15, 2017

    @Axure

    Same here, except that it does not work either without AOT. Without AOT, it takes over 140 seconds to build, and throws the following error when actually running:

    main.eed5882cd957c35b82be.bundle.js:1 Uncaught Error: Unexpected value 'e' imported by the module 'e'. Please add a @NgModule annotation.
        at c (main.eed5882cd957c35b82be.bundle.js:1)
        at main.eed5882cd957c35b82be.bundle.js:1
        at Array.forEach (<anonymous>)
        at e.getNgModuleMetadata (main.eed5882cd957c35b82be.bundle.js:1)
        at e._loadModules (main.eed5882cd957c35b82be.bundle.js:1)
        at e._compileModuleAndComponents (main.eed5882cd957c35b82be.bundle.js:1)
        at e.compileModuleAsync (main.eed5882cd957c35b82be.bundle.js:1)
        at e.compileModuleAsync (main.eed5882cd957c35b82be.bundle.js:1)
        at e.bootstrapModule (main.eed5882cd957c35b82be.bundle.js:1)
        at Object.cDNt (main.eed5882cd957c35b82be.bundle.js:1)
    
  4. samalexander commented on Nov 15, 2017

    @samalexander
    Author

    @Axure it builds successfully for me with ng build --prod --aot=false

  5. Axure commented on Nov 15, 2017

    @Axure

    I seem to have found out the problem. The problematic code there is:

            switch (node.kind) {
                case 229 /* ClassDeclaration */:
                    // classes are valid targets
                    return true;
                case 149 /* PropertyDeclaration */:
                    // property declarations are valid if their parent is a class declaration.
                    return node.parent.kind === 229 /* ClassDeclaration */;
    

    It seems to fail to find the parent of the node when the node is a property declaration. I suddenly realized that it was the @select decorator from angular-redux, and I'm pretty sure the decorator is valid. So I tried adding the following line to bypass the check.
    if (!node.parent) return true;
    And it turns out to be working.

  6. arsyed04 commented on Nov 19, 2017

    @arsyed04

    Facing this issue with Angular Cli 1.5.2
    Works fine with 1.5.0

    Angular Version: 1.5.2

  7. cerebroo commented on Nov 20, 2017

    @cerebroo

    @arsyed04 - Yup was getting error with Angular Cli 1.5.2 but worked fine when rolled back to 1.5.0
    Thanks.

    Not sure if it's really needed but my TypeScript version was 2.6.1

  8. arsyed04 commented on Nov 20, 2017

    @arsyed04

    My typescript version is also same "typescript": "^2.6.1"

  9. elvisbegovic commented on Nov 20, 2017

    @elvisbegovic
    Contributor

    same error and my version is "typescript": "~2.4.2"

  10. billcheng commented on Nov 20, 2017

    @billcheng

    Same error with cli 1.5.2. Downgraded to 1.5.0 and it worked.

    @angular/cli: 1.5.2
    @angular/xxxx: 5.0.2
    typescript: 2.4.2

    ERROR in Error: TypeError: Cannot read property 'kind' of undefined
        at nodeCanBeDecorated (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:7805:35)
        at nodeIsDecorated (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:7825:16)
        at Object.nodeOrChildIsDecorated (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:7829:16)
        at isDecoratedClassElement (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:51668:23)
        at isInstanceDecoratedClassElement (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:51659:20)
        at Object.filter (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:1652:25)
        at getDecoratedClassElements (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:51641:23)
        at generateClassElementDecorationExpressions (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:51815:27)
        at addClassElementDecorationStatements (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:51804:44)
        at visitClassDeclaration (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:51131:13)
        at visitTypeScript (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:50972:28)
        at visitorWorker (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:50785:24)
        at sourceElementVisitorWorker (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:50817:28)
        at saveStateAndInvoke (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:50738:27)
        at sourceElementVisitor (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:50799:20)
        at visitNodes (/Users/cchen6/Desktop/Codes/barter/angular-sell-contract-ui/node_modules/typescript/lib/typescript.js:49280:48)
    
  11. danielsogl commented on Nov 20, 2017

    @danielsogl
    Contributor

    Im having the same error since I use the md-bootstrap project.

  12. 1forh commented on Nov 21, 2017

    @1forh

    Getting same error.

    @angular/angular-cli 1.5.3
    @angular/core 5.0.2
    typescript 2.6.1

    Running: ng build --prod --aot

    Produces:

    ERROR in Error: TypeError: Cannot read property 'kind' of undefined
        at nodeCanBeDecorated (/path-to-site/node_modules/typescript/lib/typescript.js:8350:36)
        at nodeIsDecorated (/path-to-site/node_modules/typescript/lib/typescript.js:8364:16)
        at nodeOrChildIsDecorated (/path-to-site/node_modules/typescript/lib/typescript.js:8368:16)
        at Object.forEach (/path-to-site/node_modules/typescript/lib/typescript.js:1521:30)
        at Object.childIsDecorated (/path-to-site/node_modules/typescript/lib/typescript.js:8374:27)
        at getClassFacts (/path-to-site/node_modules/typescript/lib/typescript.js:52945:20)
        at visitClassDeclaration (/path-to-site/node_modules/typescript/lib/typescript.js:52970:25)
        at visitTypeScript (/path-to-site/node_modules/typescript/lib/typescript.js:52828:28)
        at visitorWorker (/path-to-site/node_modules/typescript/lib/typescript.js:52624:24)
        at sourceElementVisitorWorker (/path-to-site/node_modules/typescript/lib/typescript.js:52653:28)
        at saveStateAndInvoke (/path-to-site/node_modules/typescript/lib/typescript.js:52568:27)
        at sourceElementVisitor (/path-to-site/node_modules/typescript/lib/typescript.js:52638:20)
        at visitNodes (/path-to-site/node_modules/typescript/lib/typescript.js:50937:48)
        at Object.visitLexicalEnvironment (/path-to-site/node_modules/typescript/lib/typescript.js:50970:22)
        at visitSourceFile (/path-to-site/node_modules/typescript/lib/typescript.js:52915:53)
        at saveStateAndInvoke (/path-to-site/node_modules/typescript/lib/typescript.js:52568:27)
    

    Edit: I've also narrowed it down to a specific decorator I'm using throughout my app. Removing the instances of the @Throttle() decorator (from lodash-decorators) from my app "fixes" my issue.

  13. akartynnik commented on Nov 21, 2017

    @akartynnik

    Same error.

    @angular/angular-cli 1.5.0
    @angular/core 5.0.2
    typescript 2.6.1

    Running: ng build --aot

  14. 53 remaining items

  15. andrea-spotsoftware commented on Mar 2, 2018

    @andrea-spotsoftware

    @morganster this issue is about --aot compilation

  16. front-end-developer commented on Apr 23, 2018

    @front-end-developer

    It still broken
    angular cli: 1.7.4
    angular version: 5.2.10
    typescript: 2.8.3
    webpack: 3.11.0

    it is not possible to build with: ng build --prod
    still breaks with:
    TypeError: Cannot read property 'kind' of undefined

  17. kevinbuhmann commented on Apr 23, 2018

    @kevinbuhmann
    Contributor

    @front-end-developer: TypeScript 2.8.x is not yet supported. Please install a version that matches the Angular compiler's peer dependency: https://github.com/angular/angular/blob/5.2.10/packages/compiler-cli/package.json#L18

  18. front-end-developer commented on Apr 23, 2018

    @front-end-developer

    Thanks for this, now I ran:
    npm install typescript@'>=2.4.2 <2.7'

    it installed:
    "typescript": "^2.6.2"

    when i run ng build --prod:
    because I saw errors about:
    Function calls are not supported in decorators but 'ɵmakeDecorator' was called in 'Component'
    'Component' calls 'ɵmakeDecorator'

    I changed it to: 2.7.0-rc
    that fixed it.

    Then i run ng build --prod:
    Now it cries:
    ERROR in Cannot read property 'kind' of undefined
    searched all day to fix that error: but never found a solution has anybody ever found a solution this this error?

    1. anyone knows what version of node is recommended for Angular 5.2.10?
      my nvm lists has:
      8.9.4, 8.9.0, 7.6.0 & 7.10.1
  19. front-end-developer commented on Apr 26, 2018

    @front-end-developer

    So this fix worked for me:
    I was using nvm (node version manager) and switching between node versions to find the solutions,
    you have to select the right version of node, I have 64bit version and node-sass was asking for 32bit version.

    I had to do: npm rebuild node-sass
    but then after a build I had that error, during node-sass rebuild I noticed it was saying it could not find python 2.

    So I ran the command from powershell as administrator:
    npm --add-python-to-path='true' --debug install --global windows-build-tools
    npm install --global node-gyp

    then I switch to a 32 bit node version:
    nvm use 7.x.x 32

    you can check your nvm version with the command:
    nvm list
    7.6.0 (Currently using 32-bit executable)

    So that fixed that, then I ran:
    npm rebuild node-sass

    then tried to find a compatible typescript version that would not torment my production build:
    "typescript": "^2.6.2"

    that fixed my issues.

  20. front-end-developer commented on Apr 26, 2018

    @front-end-developer

    so the only error I am seeing now is:
    Function calls are not supported in decorators but 'ɵmakeDecorator' was called in 'Component'
    'Component' calls 'ɵmakeDecorator'

    but this is manageable.

  21. juninhocruzg3 commented on Apr 30, 2018

    @juninhocruzg3

    I had same problem today.

    TypeError: Cannot read property 'kind' of undefined (...)

    ...and I fix it just upgrading my Typescript for 2.6.2.

  22. rodrigowindows commented on Aug 2, 2018

    @rodrigowindows

    These steps worked for me:
    1)Clear package.json with the importat packages for example I have delete my package and insert one by one here is my

    {
      "name": "test-app",
      "version": "0.0.0",
      "scripts": {
        "ng": "ng",
        "start": "ng serve",
        "build": "ng build",
        "test": "ng test",
        "lint": "ng lint",
        "e2e": "ng e2e"
      },
      "private": true,
      "dependencies": {
        "@angular/animations": "^6.1.0",
        "@angular/cdk": "^6.4.2",
        "@angular/common": "^6.1.0",
        "@angular/compiler": "^6.1.0",
        "@angular/core": "^6.1.0",
        "@angular/flex-layout": "^6.0.0-beta.17",
        "@angular/forms": "^6.1.0",
        "@angular/http": "^6.1.0",
        "@angular/material": "^6.4.2",
        "@angular/platform-browser": "^6.1.0",
        "@angular/platform-browser-dynamic": "^6.1.0",
        "@angular/router": "^6.1.0",
        "angular2-uuid": "^1.1.1",
        "chartist": "^0.11.0",
        "core-js": "^2.5.4",
        "jquery": "^3.3.1",
        "rxjs": "^6.0.0",
        "rxjs-compat": "^6.2.2",
        "webpack": "^4.16.3",
        "zone.js": "~0.8.26"
      },
      "devDependencies": {
        "@angular-devkit/build-angular": "~0.7.0",
        "@angular/cli": "^6.1.2",
        "@angular/compiler-cli": "^6.1.0",
        "@angular/language-service": "^6.1.0",
        "@types/jasmine": "~2.8.6",
        "@types/jasminewd2": "~2.0.3",
        "@types/node": "~8.9.4",
        "codelyzer": "~4.2.1",
        "jasmine-core": "~2.99.1",
        "jasmine-spec-reporter": "~4.2.1",
        "karma": "~1.7.1",
        "karma-chrome-launcher": "~2.2.0",
        "karma-coverage-istanbul-reporter": "~2.0.0",
        "karma-jasmine": "~1.1.1",
        "karma-jasmine-html-reporter": "^0.2.2",
        "npm-install-webpack-plugin": "^4.0.5",
        "protractor": "~5.3.0",
        "ts-node": "~5.0.1",
        "tslint": "~5.9.1",
        "typescript": "^2.7.2",
        "webpack-cli": "^3.1.0",
        "webpack-dev-server": "^3.1.5"
      }
    }
    
    1. delete package_locked.json
    2. delete node_modules folder
    3. npm install
    4. Then ng build --prod was successful.
  23. albanx commented on Dec 16, 2018

    @albanx

    The problem might be in the ^ of the packages. IN my case the problem was typescript version I had
    "typescript": "^3.1.3", and npm installed version 3.2.2.

    Changed to "typescript": "3.1.3", ran npm install and the problem got fixed.

  24. EssieShey commented on Dec 21, 2018

    @EssieShey

    I believe you missed type of chartist package.
    Try below:
    npm install chartist

  25. gerardcarbo commented on Feb 6, 2019

    @gerardcarbo

    Same error in @angular/cli 7.3.0 when running 'ng serve --proxy-config proxy.conf.js --port 4500 -o':

    "dependencies": {
        "@angular/animations": "7.2.0",
        "@angular/cdk": "^7.2.1",
        "@angular/common": "7.2.0",
        "@angular/compiler": "^7.2.0",
        "@angular/core": "7.2.0",
        "@angular/flex-layout": "^7.0.0-beta.22",
        "@angular/forms": "^7.2.0",
        "@angular/http": "7.2.0",
        "@angular/material": "^7.2.1",
        "@angular/platform-browser": "7.2.0",
        "@angular/platform-browser-dynamic": "7.2.0",
        "@angular/router": "7.2.0",
        "@angular/service-worker": "7.2.0",
        "@auth0/angular-jwt": "^2.0.0",
        "@ngx-formly/core": "^4.8.2",
        "@ngx-formly/material": "^4.8.2",
        "@ngx-translate/core": "^11.0.1",
        "@ngx-translate/http-loader": "^4.0.0",
        "core-js": "^2.6.2",
        "es6-promise": "^4.2.5",
        "hammerjs": "^2.0.8",
        "material-design-icons-iconfont": "^4.0.3",
        "moment": "^2.22.1",
        "ngx-cookie": "^4.1.2",
        "rxjs": "^6.3.3",
        "tslib": "^1.9.0",
        "url": "^0.11.0",
        "util": "^0.11.0",
        "zone.js": "^0.8.26"
      },
      "devDependencies": {
        "@angular-devkit/build-angular": "^0.13.0",
        "@angular/cli": "^7.3.0",
        "@angular/compiler-cli": "^7.2.0",
        "@angular/language-service": "7.2.0",
        "@angular/platform-server": "^7.2.0",
        "@biesbjerg/ngx-translate-extract": "^2.3.1",
        "@nguniversal/express-engine": "^7.0.2",
        "@ngx-rocket/scripts": "^3.0.1",
        "@types/jasmine": "^3.3.5",
        "@types/jasminewd2": "^2.0.5",
        "@types/lodash": "^4.14.117",
        "@types/node": "^10.12.0",
        "typescript": "^3.2.4"
    }
    
    ERROR in : TypeError: Cannot read property 'kind' of undefined
        at getAssignmentTargetKind (...\node_modules\typescript\lib\typescript.js:10228:28)
        at Object.isAssignmentTarget (...\node_modules\typescript\lib\typescript.js:10271:16)
        at checkObjectLiteral (...\node_modules\typescript\lib\typescript.js:47313:45)
        at checkExpressionWorker (...\node_modules\typescript\lib\typescript.js:51812:28)
        at checkExpression (...\node_modules\typescript\lib\typescript.js:51757:42)
        at checkExpressionWithContextualType (...\node_modules\typescript\lib\typescript.js:51587:26)
        at checkApplicableSignature (...\node_modules\typescript\lib\typescript.js:48906:35)
        at chooseOverload (...\node_modules\typescript\lib\typescript.js:49225:26)
        at resolveCall (...\node_modules\typescript\lib\typescript.js:49177:26)
        at resolveCallExpression (...\node_modules\typescript\lib\typescript.js:49484:20)
        at resolveSignature (...\node_modules\typescript\lib\typescript.js:49772:28)
        at getResolvedSignature (...\node_modules\typescript\lib\typescript.js:49804:26)
        at checkCallExpression (...\node_modules\typescript\lib\typescript.js:49896:29)
        at checkExpressionWorker (...\node_modules\typescript\lib\typescript.js:51823:28)
        at checkExpression (...\node_modules\typescript\lib\typescript.js:51757:42)
        at resolveDecorator (...\node_modules\typescript\lib\typescript.js:49691:28)
    
    i 「wdm」: Failed to compile.
    

    It fails on rebuilding the project when changes are detected. Forcing a new rebuild (changing some code) use to build it correctly.

  26. angular-automatic-lock-bot commented on Sep 9, 2019

    @angular-automatic-lock-bot

    This issue has been automatically locked due to inactivity.
    Please file a new issue if you are encountering a similar or related problem.

    Read more about our automatic conversation locking policy.

    This action has been performed automatically by a bot.

  27. locked and limited conversation to collaborators on Sep 9, 2019
  28. removed their assignment
    on Jun 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P1Impacts a large percentage of users; if a workaround exists it is partial or overly painfulseverity3: broken

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions