首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ng serve -prod抛出"ERROR TypeError:(Void0)不是函数“

ng serve -prod抛出"ERROR TypeError:(Void0)不是函数“
EN

Stack Overflow用户
提问于 2018-03-14 11:04:31
回答 3查看 5.7K关注 0票数 26

所以当你遇到这种麻烦的时候-CLI应用程序。

下面是发生的情况:ng serveng serve --aot不产生异常,一切正常。在浏览应用程序时,只有运行ng serve --prod才会中断。

错误TypeError:(Void0)不是函数

在搜索答案时,我找到了这些不是,所以我在app中的每个属性之前都写了“public”,并检查提供者中是否有函数调用,但是没有什么改变。

接下来,我尝试使用--aot标志运行它,并且运行得很好,但是在--prod有相同错误的情况下仍然崩溃。

它在运行登录进程时完全崩溃,即:

  • 发送带有登录和密码数据的http POST
  • 如果请求解析,则分派ngRx-Store自定义登录事件(简单标志)
  • 然后router.navigateByUrl转到另一个页面

奇怪的是,我在任何地方都有类似的过程,但它在确切的位置崩溃了。

请有人给我提供一些关于我下一步应该在哪里挖掘的信息。干杯!

更新:我在代码中切断了登录过程的每一个部分,然后用--prod构建了它,结果发现来自@ single /material的MatDialog产生了错误。登录是在MatDialog登录组件用afterClosed()钩子解析到其父组件后触发的,它会以某种方式产生异常。

因此,被弹出触发的父级是HeaderComponent,它包含方法:

代码语言:javascript
复制
    openLoginDialog(): void {
        this.authService.login();
         const dialogRef = this.dialog.open(LoginDialogComponent);
         dialogRef.afterClosed().subscribe(result => {
           if (result) {
             this.authService.login();
           }
        });
      }

在LoginDialogComponent内部是一种简单的解析方法:

代码语言:javascript
复制
    login(login, password) {
      this.authService.tryLogin(login, password).subscribe(data => {
        this.dialogRef.close(true);
      });
    }

换句话说,在我删除了MatDialog之后,删除了项目上唯一的弹出窗口,错误就消失了。我已经为Login表单创建了另一个组件,但是我仍然认为,由于构建错误而删除整个工作模块并不是一个解决方案。

我的package.json:

代码语言:javascript
复制
    "dependencies": {
        "@angular/animations": "^5.0.2",
        "@angular/cdk": "^5.0.0-rc.1",
        "@angular/common": "^5.0.0",
        "@angular/compiler": "^5.0.0",
        "@angular/core": "^5.0.0",
        "@angular/flex-layout": "^2.0.0-beta.10-4905443",
        "@angular/forms": "^5.0.0",
        "@angular/http": "^5.0.0",
        "@angular/material": "^5.0.0-rc.1",
        "@angular/platform-browser": "^5.0.0",
        "@angular/platform-browser-dynamic": "^5.0.0",
        "@angular/platform-server": "^5.0.0",
        "@angular/router": "^5.0.0",
        "@ngrx/store": "^5.0.0",
        "@nguniversal/common": "^5.0.0-beta.5",
        "@nguniversal/express-engine": "^5.0.0-beta.5",
        "@nguniversal/module-map-ngfactory-loader": "^5.0.0-beta.5",
        "core-js": "^2.4.1",
        "hammerjs": "^2.0.8",
        "ngrx-store-freeze": "^0.2.0",
        "primeng": "^5.0.2",
        "rxjs": "^5.5.2",
        "tassign": "^1.0.0",
        "zone.js": "^0.8.14"
      },
      "devDependencies": {
        "@angular/cli": "^1.6.2",
        "@angular/compiler-cli": "^5.0.0",
        "@angular/language-service": "^5.0.0",
        "@types/jasmine": "~2.5.53",
        "@types/jasminewd2": "~2.0.2",
        "@types/node": "~6.0.60",
        "codelyzer": "~3.2.0",
        "jasmine-core": "~2.6.2",
        "jasmine-spec-reporter": "~4.1.0",
        "karma": "~1.7.0",
        "karma-chrome-launcher": "~2.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-loader": "^2.3.7",
        "ts-node": "~3.2.0",
        "tslint": "~5.7.0",
        "typescript": "~2.4.2"
      }
EN

回答 3

Stack Overflow用户

发布于 2019-11-11 14:03:00

通过点击下面的命令,您可以检查确切的问题在哪里。

代码语言:javascript
复制
ng build --prod --source-map=true

有一种可能性,这将不会锻炼你,但我希望这可以。这个问题背后的原因是捆绑了一个js文件,而js文件已经缩小了。如果您发现有任何包正在创建该问题,请尝试删除它们以修复。

票数 1
EN

Stack Overflow用户

发布于 2020-03-02 03:17:28

--prod选项将激活项目文件夹中的angular.json文件中的下列代码

代码语言:javascript
复制
      "configurations": {
        "production": {
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.prod.ts"
            }

需要确保代码在从localhost:4200或其他开发服务器服务时工作正常,特别是在安全性方面,因为它们通常与目标“prod”环境不同。

票数 1
EN

Stack Overflow用户

发布于 2020-05-26 20:18:20

您需要使用以下语法:

代码语言:javascript
复制
ng serve --configuration production
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49276085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档