Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 获取模块生成失败:RangeError:升级到Ionic 3后超过最大调用堆栈大小_Angular_Typescript_Ionic Framework_Webpack_Ionic2 - Fatal编程技术网

Angular 获取模块生成失败:RangeError:升级到Ionic 3后超过最大调用堆栈大小

Angular 获取模块生成失败:RangeError:升级到Ionic 3后超过最大调用堆栈大小,angular,typescript,ionic-framework,webpack,ionic2,Angular,Typescript,Ionic Framework,Webpack,Ionic2,我刚刚将我的Ionic 2应用程序升级到了Ionic 3,包括框架、Ionic native和CLI 我现在有以下设置 "dependencies": { "@angular/animations": "4.1.0", "@angular/common": "4.1.0", "@angular/compiler": "4.1.0", "@angular/compiler-cli": "4.1.0", "@an

我刚刚将我的Ionic 2应用程序升级到了Ionic 3,包括框架、Ionic native和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,还有。如果我在一个新创建的小的爱奥尼亚3应用程序中使用这两个应用程序中的任何一个,那么就存在问题

我已经阅读了很多关于webpack抛出此错误的其他报告,但我不明白为什么在我现有的项目中会发生这种情况

当我降级到新的Ionic CLI版本3或旧版本(2.2.3)时,都会发生这种情况

[UPDATE1]

在第二台机器(Windows 10)上运行节点v6.9.4(上面是节点7.something)和npm 4.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.
我不太理解这两个
未满足的对等依赖关系,因为我确实有
@/core@4.1.0
@angular/http@4.1.0
已安装

无论如何,我还是会得到同样的溢出。真的不知道下一步该怎么办。再一次,这些库在新创建的Ionic应用程序中都构建得很好,可能是因为它要小得多


我也发现了,但它看起来和我的有点不同…

在从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.ts

对我来说,解决方案是使用最新的Ionic,包括最新的CLI,,除了imgx64建议的将TypeScript保持在2.3.0,您使用的是哪个版本的节点?在机器上使用node v6.10.3和npm v3.10.10可以很好地工作。我最初在机器上尝试了这一点,当时运行的是node版本7.0。我已经在第二台机器上尝试了构建,这台机器的节点是v6.9.4,npm 4.2.0。我得到了同样的错误,虽然没有太多的细节,因为它是从哪里来的,我将添加这些问题(因为不能在这里格式化)我们有一个构建脚本的问题添加了这个。在我看来,这似乎是缩小造成它。