2017-08-04 108 views
3

我有一个大型项目,它一直运行在webpack上,并且所有的项目都使用[email protected]。今天,我计划将其转换为ng-cli,以利用像通用这样的功能。除非当我尝试在prod/prod + aot中构建项目时,一切都运行良好,并且我得到:超出最大调用堆栈大小。使用Angular CLI构建超出最大调用堆栈大小

检查了各个地方的问题,大多数人告诉检查循环依赖。但根据最新的[email protected],循环依赖应该显示为构建时间,但情况并非如此。我打算增加节点虚拟机堆栈大小,但无法实现这一点。我不想使用ng eject并再次进入webpack混乱。

是否有一些其他的方法或解决方案在那里与[email protected]

感谢

的package.json

{ 
    "name": "test-project", 
    "version": "0.0.0", 
    "license": "MIT", 
    "scripts": { 
    "ng": "ng", 
    "start": "ng serve", 
    "build": "ng build", 
    "test": "ng test", 
    "lint": "ng lint", 
    "e2e": "ng e2e" 
    }, 
    "private": true, 
    "dependencies": { 
    "@angular/common": "~4.3.3", 
    "@angular/compiler": "~4.3.3", 
    "@angular/core": "~4.3.3", 
    "@angular/forms": "~4.3.3", 
    "@angular/http": "~4.3.3", 
    "@angular/animations": "~4.3.3", 
    "@angular/flex-layout": "^2.0.0-beta.8", 
    "@angular/material": "^2.0.0-beta.8", 
    "@angular/cdk": "^2.0.0-beta.8", 
    "@angular/platform-browser": "~4.3.3", 
    "@angular/platform-browser-dynamic": "~4.3.3", 
    "@angular/platform-server": "~4.3.3", 
    "@angular/router": "~4.3.3", 
    "angular2-highcharts": "~0.5.5", 
    "@types/highcharts": "~4.2.57", 
    "angular-2-local-storage" : "^1.0.1", 
    "ngx-infinite-scroll": "^0.5.1", 
    "jspdf" : "^1.3.3", 
    "@types/jspdf" : "^1.1.31", 
    "jspdf-autotable" : "^2.3.2", 
    "html2canvas": "^0.5.0-beta4", 
    "@types/html2canvas": "^0.5.34", 
    "core-js": "^2.4.1", 
    "jasmine-core": "^2.6.4", 
    "reflect-metadata": "^0.1.10", 
    "rxjs": "^5.4.1", 
    "moment": "^2.18.1", 
    "zone.js": "^0.8.14", 
    "angular2-jwt" : "^0.2.3", 
    "@types/modernizr": "3.3.0" 
    }, 
    "devDependencies": { 
    "@angular/language-service": "^4.0.0", 
    "@angular/compiler-cli": "~4.3.3", 
    "@angular/platform-server": "~4.3.3", 
    "@angular/cli": "1.2.7", 
    "hammerjs": "^2.0.8", 
    "hammer-timejs" : "^1.1.0", 
    "@types/hammerjs": "^2.0.34", 
    "@types/jasmine": "^2.5.53", 
    "@types/jasminewd2": "~2.0.2", 
    "@types/node": "~6.0.60", 
    "codelyzer": "~3.1.1", 
    "jasmine-core": "^2.6.4", 
    "jasmine-spec-reporter": "~4.1.0", 
    "karma": "^1.7.0", 
    "karma-chrome-launcher": "^2.2.0", 
    "karma-coverage": "^1.1.1", 
    "karma-cli": "~1.0.1", 
    "karma-coverage-istanbul-reporter": "^1.2.1", 
    "karma-jasmine": "^1.1.0", 
    "karma-jasmine-html-reporter": "^0.2.2", 
    "protractor": "~5.1.2", 
    "ts-node": "~3.1.0", 
    "tslib": "^1.7.1", 
    "tslint": "~5.4.3", 
    "typescript": "^2.4.1" 
    } 
} 
+0

很可能你有一个像布局页面这样的组件,他正在嵌入另一个包含该布局页面的组件。这是我的情况Ionic和他们的标签控制器 –

+0

还没有发现任何东西,我没有这样的依赖关系。检查了很多次。 –

+0

我的评论不是关于依赖关系的关于循环引用,意思是你需要检查你的组件代码,你的浏览器有什么错误? –

回答

3

我和我的团队目前encoutered这个问题。我尝试过,从完全删除我们应用程序中的桶的使用(我认为这是一个循环依赖问题,许多SO问题让我相信)

我的本地环境运行良好,但新部署是有最大的调用堆栈问题。

当我比较节点模块,我注意到,现在zone.js在0.8.17(0.8.16之前)

我因此被迫0.8.16在我的package.json,和一切工作.. BLAH 8小时就可以了!

希望这可以帮助你。

编辑

这里是GitHub的问题:https://github.com/angular/zone.js/issues/886

截至目前,有提出来解决这个问题拉入请求。

0

找到了解决方案,在我的懒加载的路由和模块中有一些循环依赖关系。

相关问题