【问题标题】:Angular7 in production mode: Uncaught ReferenceError: environment is not defined生产模式下的Angular7:未捕获的ReferenceError:未定义环境
【发布时间】:2019-07-17 08:41:00
【问题描述】:

我的应用程序在开发中运行良好,ng build --prod --source-map 成功构建应用程序。但是当我尝试在浏览器中访问它时,我得到了这个错误:

app.module.ts:47 Uncaught ReferenceError: env is not defined
    at Object.zUnb (app.module.ts:47)
    at u (bootstrap:81)

这是我的app.module.ts 文件(相关部分):

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { APP_BASE_HREF } from '@angular/common';
import { HTTP_INTERCEPTORS, HttpClient } from '@angular/common/http';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { environment as env } from '@env/environment'; // <- import env
import { CoreModule } from '@app/core/core.module';

@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    MatSidenavModule,
    CoreModule,
    AppRoutingModule,
  ],
  providers: [
    { provide: APP_BASE_HREF, useValue: env.baseHref } // <--- error
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

这是我的tsconfig.json 文件,其中定义了@env 路径:

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./src/",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ],
    "paths": {
      "@app/*": ["app/*"],
      "@env/*": ["environments/*"]
    }
  }
}

【问题讨论】:

    标签: javascript angular typescript npm angular-cli


    【解决方案1】:

    我将@angular-devkit/build-angular从版本~0.6.0升级到^0.13.3,它解决了这个问题。

    【讨论】:

      【解决方案2】:
      import { environment } as env from '@env/environment';
      

      这应该可以解决问题...

      【讨论】:

      • 编译器对此抱怨:TS1005: ';' expected. TS2304: Cannot find name 'from'
      • 试试import * as env from '@env/environment'; ?
      • TS2339:“typeof import("path-to-project/src/environments/environment")”类型上不存在属性“baseHref”。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-08
      • 2023-01-23
      • 2016-02-28
      • 2016-11-03
      • 2011-01-05
      • 2016-01-02
      • 2013-10-06
      相关资源
      最近更新 更多