【问题标题】:How to specify custom environment variables in Angular?如何在 Angular 中指定自定义环境变量?
【发布时间】:2017-08-08 19:50:53
【问题描述】:

我想使用另一个环境变量。在我的情况下test。原因是我想为我的集成测试注入一个 http 拦截器。这个拦截器应该只返回一个带有预定义数据的模拟响应,并且只用于测试。

有官方的角度方式吗?

所以我想要这个app.module.ts

    import { environment } from '../environments/environment';
    // ...

    export function CustomHttpProvider (backend: XHRBackend, options: RequestOptions) {
      return new HttpService(backend, options);
    }

    export function FakeHttpProvider (backend: XHRBackend, options: RequestOptions) {
      return new FakeHttpService(backend, options);
    }

    const HttpProvider = environment.test ? FakeHttpProvider : CustomHttpProvider;

    @NgModule({
      imports: [
        BrowserModule,
        HttpModule,
        BrowserAnimationsModule,

        // ... my modules + routing here
      ],
      declarations: [AppComponent],
      providers: [
        {
          provide: Http,
          useFactory: HttpProvider,
          deps: [XHRBackend, RequestOptions]
        }
      ],
      bootstrap: [AppComponent]
    })
    export class AppModule {}

【问题讨论】:

    标签: angular angular-cli


    【解决方案1】:

    Angular CLI 有一个命令行参数 --environment,如果你设置了一些类来支持它,它会让你这样做。

    看到这个blog post

    This answer 提供了大量与您的问题相关的信息。

    作为旁注。对于 angular 1.5,我使用了 this plugin

    【讨论】:

    • 我错过了在angular-cli.json 中的environments 下添加environment.test.ts 文件。博客文章的链接显示了有关此的更多信息。感谢您的回答;-)
    猜你喜欢
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    • 2022-12-02
    • 2021-12-14
    • 2016-12-25
    相关资源
    最近更新 更多