我刚刚升级了我的Ionic 2应用程序到Ionic 3,所有的框架,Ionic本机,和CLI。
我现在有了以下设置..
"dependencies": {
"@angular/animations": "4.1.0",
"@angular/common": "4.1.0",
"@angular/compiler": "4.1.0",
"@angular/compiler-cli": "4.1.0",
"@angular/core": "^4.1.0",
"@angular/forms": "4.1.0",
"@angular/http": "^4.1.0",
"@angular/platform-browser": "4.1.0",
"@angular/platform-browser-dynamic": "4.1.0",
"@ionic-native/app-version": "^3.8.0",
"@ionic-native/core": "3.6.1",
"@ionic-native/device": "^3.8.0",
"@ionic-native/file": "^3.7.0",
"@ionic-native/network": "^3.8.0",
"@ionic-native/social-sharing": "^3.7.0",
"@ionic-native/splash-screen": "3.6.1",
"@ionic-native/status-bar": "3.6.1",
"@ionic-native/toast": "^3.8.0",
"@ionic/storage": "2.0.1",
"c3": "^0.4.11",
"ionic-angular": "3.2.1",
"ionicons": "3.0.0",
"js-logger": "^1.3.0",
"jslogger": "^1.0.3",
"jszip": "^3.1.3",
"lodash": "^4.17.4",
"moment": "^2.17.1",
"moment-duration-format": "^1.3.0",
"ng2-translate": "^5.0.0",
"rxjs": "5.1.1",
"semaphore-async-await": "^1.3.2",
"sw-toolbox": "3.6.0",
"zone.js": "0.8.10"
},
"devDependencies": {
"@ionic/app-scripts": "1.3.7",
"@ionic/cli-plugin-ionic-angular": "1.0.0",
"@types/c3": "^0.4.38",
"@types/jasmine": "^2.5.42",
"@types/jszip": "0.0.32",
"@types/lodash": "^4.14.51",
"@types/moment-duration-format": "^1.3.1",
"@types/node": "^7.0.5",
"codecov": "^1.0.1",
"install": "^0.8.7",
"jasmine-core": "^2.5.2",
"jasmine-spec-reporter": "^3.2.0",
"karma": "^1.4.1",
"karma-chrome-launcher": "^2.0.0",
"karma-jasmine": "^1.1.0",
"karma-mocha-reporter": "^2.2.2",
"karma-remap-istanbul": "^0.6.0",
"ts-node": "^2.1.0",
"tslint": "^4.4.2",
"tslint-eslint-rules": "^3.3.0",
"typescript": "^2.2.1"
},现在,如果我使用-prod标志进行构建(如果没有此标记,它是很好的),我将得到以下错误.
[16:50:08] webpack started ...
Error: ./~/jszip/lib/index.js
Module build failed: RangeError: Maximum call stack size exceeded
at Object.forEachChild (D:\dev\myapp\node_modules\typescript\lib\typescript.js:14735:26)
at traverse (D:\dev\myapp\node_modules\typescript\lib\typescript.js:7271:31)
at Object.forEachReturnStatement (D:\dev\myapp\node_modules\typescript\lib\typescript.js:7251:16)
at checkAndAggregateReturnExpressionTypes (D:\dev\myapp\node_modules\typescript\lib\typescript.js:40055:16)
at getReturnTypeFromBody (D:\dev\myapp\node_modules\typescript\lib\typescript.js:39965:29)
at getReturnTypeOfSignature (D:\dev\myapp\node_modules\typescript\lib\typescript.js:31190:28)
at resolveNewExpression (D:\dev\myapp\node_modules\typescript\lib\typescript.js:39483:21)
at resolveSignature (D:\dev\myapp\node_modules\typescript\lib\typescript.js:39639:28)
at getResolvedSignature (D:\dev\myapp\node_modules\typescript\lib\typescript.js:39669:26)
at checkCallExpression (D:\dev\myapp\node_modules\typescript\lib\typescript.js:39696:29)
@ ./src/providers/file-logger.ts 58:0-28
@ ./src/app/app.module.ngfactory.ts
@ ./src/app/main.ts,./~/d3/d3.js
Module build failed: RangeError: Maximum call stack size exceeded
at RegExp.[Symbol.replace] (native)
at String.replace (native)
at formatStringFromArgs (D:\dev\myapp\node_modules\typescript\lib\typescript.js:2365:21)
at Object.chainDiagnosticMessages (D:\dev\myapp\node_modules\typescript\lib\typescript.js:2433:20)
at reportNonexistentProperty (D:\dev\myapp\node_modules\typescript\lib\typescript.js:38290:28)
at checkPropertyAccessExpressionOrQualifiedName (D:\dev\myapp\node_modules\typescript\lib\typescript.js:38332:
21)
at checkPropertyAccessExpression (D:\dev\myapp\node_modules\typescript\lib\typescript.js:38274:20)
at checkExpressionWorker (D:\dev\myapp\node_modules\typescript\lib\typescript.js:41158:28)
at checkExpression (D:\dev\myapp\node_modules\typescript\lib\typescript.js:41115:42)
at checkExpressionWithContextualType (D:\dev\myapp\node_modules\typescript\lib\typescript.js:40983:26)
@ ./src/pages/mypage/mypage.ts 61:0-25
@ ./src/app/app.module.ts
@ ./src/app/app.module.ngfactory.ts
@ ./src/app/main.ts我已经追踪到了2 libs C3/D3和jszip。如果我在一个小新创建的 Ionic 3应用程序中使用其中任何一个,那么就会出现而不是的问题。
我经历过很多其他webpack抛出这个错误的报告,但我不明白为什么现在在我现有的项目中发生了这样的事情。
这要么发生在新的Ionic CLI版本3上,要么发生在我降级到新的Ionic CLI版本(2.2.3)时。
UPDATE1
在第二台计算机(Windows 10)上运行节点v6.9.4 (上面的是节点7.s)和NPM4.2.0,我得到了类似但格式不同的错误.
[16:31:04] webpack started ...
[16:31:35] webpack finished in 31.23 s
[16:31:35] sass started ...
[16:31:36] transpile bundle started ...
[16:31:44] build prod failed: Maximum call stack size exceeded
[16:31:44] ionic-app-script task: "build"
[16:31:44] RangeError: Maximum call stack size exceeded
RangeError: Maximum call stack size exceeded
at checkNonNullExpression (H:\dev\myapp\upgradeto3\node_modules\typescript\lib\typescript.js:38258:40)
at resolveNewExpression (H:\dev\myapp\upgradeto3\node_modules\typescript\lib\typescript.js:39433:34)
at resolveSignature (H:\dev\myapp\upgradeto3\node_modules\typescript\lib\typescript.js:39639:28)
at getResolvedSignature (H:\dev\myapp\upgradeto3\node_modules\typescript\lib\typescript.js:39669:26)
at checkCallExpression (H:\dev\myapp\upgradeto3\node_modules\typescript\lib\typescript.js:39696:29)
at checkExpressionWorker (H:\dev\myapp\upgradeto3\node_modules\typescript\lib\typescript.js:41163:28)
at checkExpression (H:\dev\myapp\upgradeto3\node_modules\typescript\lib\typescript.js:41115:42)
at checkExpressionCached (H:\dev\myapp\upgradeto3\node_modules\typescript\lib\typescript.js:40996:38)
at H:\dev\myapp\upgradeto3\node_modules\typescript\lib\typescript.js:40058:32
at traverse (H:\dev\myapp\upgradeto3\node_modules\typescript\lib\typescript.js:7255:28)UPDATE2
作为另一个测试,我添加了一个新的空页面,只添加了C3导入,然后调用了库中的单个函数(generate)。
这个新页面也会出现同样的错误。
有人知道如何追踪这个问题吗?我没有想法了,我只是不能从空白重新启动这个项目。
提前感谢您的帮助
UPDATE3
我想我应该尝试将TypeScript更新到最新的2.3.2。当我重新运行npm安装时,我确实收到了一些警告。
+-- UNMET PEER DEPENDENCY @angular/core@4.1.0
+-- UNMET PEER DEPENDENCY @angular/http@4.1.0
`-- typescript@2.3.2
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.1: wanted {"os":"darwin","arch":"any"} (curre
nt: {"os":"win32","arch":"x64"})
npm WARN ng2-translate@5.0.0 requires a peer of @angular/core@^2.0.0 but none was installed.
npm WARN ng2-translate@5.0.0 requires a peer of @angular/http@^2.0.0 but none was installed.我不太理解这两个UNMET PEER DEPENDENCY,因为我确实安装了@angular/core@4.1.0和@angular/http@4.1.0。
无论如何,我还是会有同样的溢出。真的不知道下一步该做什么。再一次,这些库都在新创建的Ionic应用程序中构建得很好,可能是因为它要小得多?
我也找到了本期,但我在这里看起来有点不一样.
发布于 2017-06-04 04:49:12
对我来说,解决方案是拥有最新的离子,包括最新的,除了 holding TypeScript at 2.3.0,这是imgx64 这里的建议
发布于 2017-06-01 16:26:20
在Ionic 3.2.1到3.3.0之间运行ionic cordova build browser --prod时,也会出现类似的错误。只有当我使用--prod参数时才会发生这种情况。
错误日志:
$ ionic cordova build browser --prod
Running app-scripts build: --prod --iscordovaserve --externalIpRequired --nobrowser
[13:22:25] build prod started ...
[13:22:25] clean started ...
[13:22:25] clean finished in 16 ms
[13:22:25] copy started ...
[13:22:25] ngc started ...
[13:22:37] ngc finished in 11.64 s
[13:22:37] preprocess started ...
[13:22:37] deeplinks started ...
[13:22:37] deeplinks finished in 594 ms
[13:22:37] optimization started ...
[13:22:38] copy finished in 12.65 s
[13:22:57] optimization finished in 19.56 s
[13:22:57] preprocess finished in 20.15 s
[13:22:57] webpack started ...
[WARN] Error occurred during command execution from a CLI plugin (@ionic/cli-plugin-cordova). Your plugins may be out of date.
Error: ./~/d3/d3.js
Module build failed: RangeError: Maximum call stack size exceeded
at checkNonNullExpression (C:\Projetos\MyProject\Frontend\node_modules\typescript\lib\typescript.js:38397:40)
at checkPropertyAccessExpressionOrQualifiedName (C:\Projetos\MyProject\Frontend\node_modules\typescript\lib\typescript.js:38455:24)
at checkPropertyAccessExpression (C:\Projetos\MyProject\Frontend\node_modules\typescript\lib\typescript.js:38413:20)
at checkExpressionWorker (C:\Projetos\MyProject\Frontend\node_modules\typescript\lib\typescript.js:41300:28)
at checkExpression (C:\Projetos\MyProject\Frontend\node_modules\typescript\lib\typescript.js:41257:42)
at checkBinaryLikeExpression (C:\Projetos\MyProject\Frontend\node_modules\typescript\lib\typescript.js:40834:28)
at checkBinaryExpression (C:\Projetos\MyProject\Frontend\node_modules\typescript\lib\typescript.js:40827:20)
at checkExpressionWorker (C:\Projetos\MyProject\Frontend\node_modules\typescript\lib\typescript.js:41335:28)
at checkExpression (C:\Projetos\MyProject\Frontend\node_modules\typescript\lib\typescript.js:41257:42)
at checkBinaryLikeExpression (C:\Projetos\MyProject\Frontend\node_modules\typescript\lib\typescript.js:40834:28)
@ ./~/c3/c3.js 830:70-83
@ ./src/components/c3-chart-component/c3-chart-adapter.ts
@ ./src/components/c3-chart-component/c3-chart-component.ts
@ ./src/pages/dashboard/dashboard.ngfactory.ts
@ ./src/pages/dashboard/dashboard.module.ngfactory.ts
@ ./src async
@ ./~/ionic-angular/util/ng-module-loader.js
@ ./src/app/app.module.ngfactory.ts
@ ./src/app/main.tshttps://stackoverflow.com/questions/43982175
复制相似问题