2017-08-04 93 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

找到了解決方案,在我的懶加載的路由和模塊中有一些循環依賴關係。

相關問題