Ngx-charts: RangeError: Maximum call stack size exceeded

Created on 13 May 2021  路  4Comments  路  Source: swimlane/ngx-charts

Describe the bug
Hello, I cannot instal dependencies with npm i. Everything crashes after adding ngx-charts to package.json. Issue started to occur after adding "@angular/material": "^12.0.0". Tried on removed package-lock and also node_modules

{
  "name": "...",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "nx",
    "postinstall": "node ./decorate-angular-cli.js && ngcc --properties es2015 browser module main",
    "nx": "nx",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "nx workspace-lint && ng lint",
    "e2e": "ng e2e",
    "affected:apps": "nx affected:apps",
    "affected:libs": "nx affected:libs",
    "affected:build": "nx affected:build",
    "affected:e2e": "nx affected:e2e",
    "affected:test": "nx affected:test",
    "affected:lint": "nx affected:lint",
    "affected:dep-graph": "nx affected:dep-graph",
    "affected": "nx affected",
    "format": "nx format:write",
    "format:write": "nx format:write",
    "format:check": "nx format:check",
    "update": "nx migrate latest",
    "workspace-generator": "nx workspace-generator",
    "dep-graph": "nx dep-graph",
    "help": "nx help"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^11.2.0",
    "@angular/cdk": "^12.0.0",
    "@angular/common": "^11.2.0",
    "@angular/compiler": "^11.2.0",
    "@angular/core": "^11.2.0",
    "@angular/forms": "^11.2.0",
    "@angular/material": "^12.0.0",
    "@angular/platform-browser": "^11.2.0",
    "@angular/platform-browser-dynamic": "^11.2.0",
    "@angular/router": "^11.2.0",
    "@eropple/nestjs-correlation-id": "^1.0.1",
    "@kubernetes/client-node": "^0.14.3",
    "@nestjs/common": "^7.0.0",
    "@nestjs/config": "^0.6.3",
    "@nestjs/core": "^7.0.0",
    "@nestjs/platform-express": "^7.0.0",
    "@nrwl/angular": "11.6.1",
    "@swimlane/ngx-charts": "^18.0.1",
    "archiver": "^5.3.0",
    "file-saver": "^2.0.5",
    "js-yaml": "^4.1.0",
    "jszip": "^3.6.0",
    "nestjs-cron": "^1.2.0",
    "ngx-monaco-editor": "9.0.0",
    "node-cmd": "^4.0.0",
    "reflect-metadata": "^0.1.13",
    "rxjs": "~6.6.3",
    "tslib": "^2.0.0",
    "uuid": "^8.3.2",
    "xlsx": "^0.16.9",
    "zone.js": "^0.10.2"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.1102.0",
    "@angular-eslint/eslint-plugin": "~1.0.0",
    "@angular-eslint/eslint-plugin-template": "~1.0.0",
    "@angular-eslint/template-parser": "~1.0.0",
    "@angular/cli": "~11.0.0",
    "@angular/compiler-cli": "^11.2.0",
    "@angular/language-service": "^11.2.0",
    "@nestjs/schematics": "^7.0.0",
    "@nestjs/testing": "^7.0.0",
    "@nrwl/cli": "11.6.1",
    "@nrwl/cypress": "11.6.1",
    "@nrwl/eslint-plugin-nx": "11.6.1",
    "@nrwl/jest": "11.6.1",
    "@nrwl/linter": "11.6.1",
    "@nrwl/nest": "11.6.1",
    "@nrwl/node": "11.6.1",
    "@nrwl/tao": "11.6.1",
    "@nrwl/workspace": "11.6.1",
    "@types/archiver": "^5.1.0",
    "@types/jest": "26.0.8",
    "@types/multer": "^1.4.5",
    "@types/node": "14.14.33",
    "@typescript-eslint/eslint-plugin": "4.3.0",
    "@typescript-eslint/parser": "4.3.0",
    "cypress": "^6.0.1",
    "dotenv": "8.2.0",
    "eslint": "7.10.0",
    "eslint-config-prettier": "8.1.0",
    "eslint-plugin-cypress": "^2.10.3",
    "jest": "26.2.2",
    "jest-preset-angular": "8.3.2",
    "prettier": "2.2.1",
    "ts-jest": "26.4.0",
    "ts-node": "~9.1.1",
    "typescript": "~4.0.3"
  }
}

To Reproduce

  • unpack zip (3 files - package.json, lock and decorate-angular-cli.js)
    base-files.zip
  • npm i
$ npm i

> [email protected] postinstall C:\dev\temp
> node ./decorate-angular-cli.js && ngcc --properties es2015 browser module main


>  NX  Angular CLI has been decorated to enable computation caching.

Compiling @angular/core : es2015 as esm2015
Compiling @angular/animations : es2015 as esm2015
Compiling @angular/cdk/keycodes : es2015 as esm2015
Compiling @angular/compiler/testing : es2015 as esm2015
Compiling @nrwl/angular/testing : es2015 as esm2015
Compiling @angular/animations : main as umd
Compiling @angular/cdk/keycodes : main as umd
Compiling @nrwl/angular/testing : main as umd
Compiling @angular/compiler/testing : main as umd
Compiling @angular/cdk/observers : es2015 as esm2015
Compiling @angular/common : es2015 as esm2015
Compiling @angular/animations/browser : es2015 as esm2015
Compiling @angular/cdk/collections : es2015 as esm2015
Compiling @angular/core/testing : es2015 as esm2015
Compiling @angular/cdk/platform : es2015 as esm2015
Compiling @angular/cdk/bidi : es2015 as esm2015
Compiling @angular/platform-browser : es2015 as esm2015
Compiling @angular/forms : es2015 as esm2015
Compiling @angular/cdk/a11y : es2015 as esm2015
Compiling @angular/platform-browser/animations : es2015 as esm2015
Compiling @angular/cdk/scrolling : es2015 as esm2015
Compiling @angular/cdk/portal : es2015 as esm2015
Compiling @angular/cdk/layout : es2015 as esm2015
Compiling @angular/common/http : es2015 as esm2015
Compiling @angular/cdk/overlay : es2015 as esm2015
Compiling @angular/material/core : es2015 as esm2015
Compiling @angular/cdk/text-field : es2015 as esm2015
Compiling @angular/cdk/accordion : es2015 as esm2015
Compiling @angular/cdk/stepper : es2015 as esm2015
Compiling @angular/cdk/table : es2015 as esm2015
Compiling @angular/cdk/tree : es2015 as esm2015
Compiling @angular/platform-browser-dynamic : es2015 as esm2015
Compiling @angular/material/form-field : es2015 as esm2015
Compiling @angular/material/button : es2015 as esm2015
Compiling @angular/material/icon : es2015 as esm2015
Compiling @angular/material/tooltip : es2015 as esm2015
Compiling @angular/material/divider : es2015 as esm2015
Compiling @angular/material/select : es2015 as esm2015
Compiling @angular/material/input : es2015 as esm2015
Compiling @angular/material/sort : es2015 as esm2015
Compiling @angular/platform-browser/testing : es2015 as esm2015
Compiling @angular/common/testing : es2015 as esm2015
Compiling @angular/router : es2015 as esm2015
Compiling ngx-monaco-editor : es2015 as esm2015
Compiling @angular/animations/browser/testing : es2015 as esm2015
Compiling @angular/material/paginator : es2015 as esm2015
Compiling @angular/cdk/clipboard : es2015 as esm2015
Compiling @angular/cdk/drag-drop : es2015 as esm2015
Compiling @angular/common/http/testing : es2015 as esm2015
Compiling @angular/material/autocomplete : es2015 as esm2015
Compiling @angular/material/badge : es2015 as esm2015
Compiling @angular/material/bottom-sheet : es2015 as esm2015
Compiling @angular/material/button-toggle : es2015 as esm2015
Compiling @angular/material/card : es2015 as esm2015
Compiling @angular/material/checkbox : es2015 as esm2015
Compiling @angular/material/chips : es2015 as esm2015
Compiling @angular/material/datepicker : es2015 as esm2015
Compiling @angular/material/dialog : es2015 as esm2015
Compiling @angular/material/expansion : es2015 as esm2015
Compiling @angular/material/grid-list : es2015 as esm2015
Compiling @angular/material/icon/testing : es2015 as esm2015
Compiling @angular/material/list : es2015 as esm2015
Compiling @angular/material/menu : es2015 as esm2015
Compiling @angular/material/progress-bar : es2015 as esm2015
Compiling @angular/material/progress-spinner : es2015 as esm2015
Compiling @angular/material/radio : es2015 as esm2015
Compiling @angular/material/sidenav : es2015 as esm2015
Compiling @angular/material/slide-toggle : es2015 as esm2015
Compiling @angular/material/slider : es2015 as esm2015
Compiling @angular/material/snack-bar : es2015 as esm2015
Compiling @angular/material/stepper : es2015 as esm2015
Compiling @angular/material/table : es2015 as esm2015
Compiling @angular/material/tabs : es2015 as esm2015
Compiling @angular/material/toolbar : es2015 as esm2015
Compiling @angular/material/tree : es2015 as esm2015
Compiling @angular/platform-browser-dynamic/testing : es2015 as esm2015
Compiling @angular/router/testing : es2015 as esm2015
Compiling @swimlane/ngx-charts : es2015 as esm2015
Compiling @angular/animations/browser/testing : main as umd
Compiling @angular/animations/browser : main as umd
Compiling @angular/common : main as umd
Compiling @angular/core : main as umd
Compiling @angular/cdk/clipboard : main as umd
Compiling @angular/cdk/platform : main as umd
Compiling @angular/cdk/bidi : main as umd
Compiling @angular/cdk/collections : main as umd
Compiling @angular/cdk/scrolling : main as umd
Compiling @angular/cdk/drag-drop : main as umd
Compiling @angular/common/http : main as umd
Compiling @angular/common/http/testing : main as umd
Compiling @angular/cdk/observers : main as umd
Compiling @angular/cdk/a11y : main as umd
Compiling @angular/platform-browser : main as umd
Compiling @angular/platform-browser/animations : main as umd
Compiling @angular/forms : main as umd
Compiling @angular/material/core : main as umd
Compiling @angular/cdk/portal : main as umd
Compiling @angular/cdk/overlay : main as umd
Compiling @angular/material/form-field : main as umd
Compiling @angular/material/autocomplete : main as umd
Compiling @angular/material/badge : main as umd
Compiling @angular/cdk/layout : main as umd
Compiling @angular/material/bottom-sheet : main as umd
Compiling @angular/material/button-toggle : main as umd
Compiling @angular/material/card : main as umd
Compiling @angular/material/checkbox : main as umd
Compiling @angular/material/chips : main as umd
Compiling @angular/material/button : main as umd
Compiling @angular/cdk/text-field : main as umd
Compiling @angular/material/input : main as umd
Compiling @angular/material/datepicker : main as umd
Compiling @angular/material/dialog : main as umd
Compiling @angular/cdk/accordion : main as umd
Compiling @angular/material/expansion : main as umd
Compiling @angular/material/grid-list : main as umd
Compiling @angular/material/icon : main as umd
Compiling @angular/material/icon/testing : main as umd
Compiling @angular/material/divider : main as umd
Compiling @angular/material/list : main as umd
Compiling @angular/material/menu : main as umd
Compiling @angular/material/progress-bar : main as umd
Compiling @angular/material/progress-spinner : main as umd
Compiling @angular/material/radio : main as umd
Compiling @angular/material/sidenav : main as umd
Compiling @angular/material/slide-toggle : main as umd
Compiling @angular/material/slider : main as umd
Compiling @angular/cdk/stepper : main as umd
Compiling @angular/material/snack-bar : main as umd
Compiling @angular/material/stepper : main as umd
Compiling @angular/cdk/table : main as umd
Compiling @angular/material/select : main as umd
Compiling @angular/material/tooltip : main as umd
Compiling @angular/material/paginator : main as umd
Compiling @angular/material/sort : main as umd
Compiling @angular/material/table : main as umd
Compiling @angular/material/tabs : main as umd
Compiling @angular/material/toolbar : main as umd
Compiling @angular/cdk/tree : main as umd
Compiling @angular/material/tree : main as umd
Compiling @angular/core/testing : main as umd
Compiling @angular/platform-browser-dynamic : main as umd
Compiling @angular/platform-browser/testing : main as umd
Compiling @angular/platform-browser-dynamic/testing : main as umd
Compiling @angular/common/testing : main as umd
Compiling @angular/router : main as umd
Compiling @angular/router/testing : main as umd
Compiling ngx-monaco-editor : module as esm5
Compiling ngx-monaco-editor : main as umd
Compiling @swimlane/ngx-charts : main as umd
Error: Error on worker #2: RangeError: Maximum call stack size exceeded
    at resolveNameHelper (C:\dev\temp\node_modules\typescript\lib\typescript.js:43778:35)

Expected behavior
Should install without issues, as it does without "@swimlane/ngx-charts": "^18.0.1",

ngx-charts version
18.0.1

Bug

Most helpful comment

Found temporary solution
Create ngcc.config.js

module.exports = {
  packages: {
    '@swimlane/ngx-charts': {
      entryPoints: {
        '.': { override: { main: undefined } },
      }
    }
  }
};

All 4 comments

I updated ALL dependencies, invoked npm cache clean --force and no difference. And with 17.0.1 it works fine.

Same problem with 18.0.0 and 18.0.1
17.0.1 works fine

Found temporary solution
Create ngcc.config.js

module.exports = {
  packages: {
    '@swimlane/ngx-charts': {
      entryPoints: {
        '.': { override: { main: undefined } },
      }
    }
  }
};

Fixed with #1667

Was this page helpful?
0 / 5 - 0 ratings

Related issues

cfremgen picture cfremgen  路  3Comments

emeric0101 picture emeric0101  路  3Comments

amcdnl picture amcdnl  路  4Comments

tobigit picture tobigit  路  4Comments

jvbianchi picture jvbianchi  路  4Comments