【问题标题】:Removing InMemoryWebApiModule for prod config on webpack for angular projects为 Angular 项目的 webpack 上的 prod 配置删除 InMemoryWebApiModule
【发布时间】:2017-11-08 09:32:22
【问题描述】:

我正在使用 InMemoryWebApiModule 在 dev 上模拟我的数据,但不希望将其用于 prod。有什么技术可以不将它用于 webpack 上的产品吗? atm 我正在尝试使用 webpack-strip-block 删除 webpack.prod 配置上的导入,但无法使其正常工作。有人对如何处理它有任何其他想法吗?

【问题讨论】:

    标签: angular webpack-dev-server webpack-2


    【解决方案1】:

    我尝试过这个技巧,它适用于我的情况。我没有从 webpack 处理它,而是更改了我们向主模块提供相应提供程序的方式,

    @NgModule({
      declarations: [
        AppComponent,
        DisplayNameComponent
      ],
      imports: [
        BrowserModule,
        HttpClientModule
      ],
      providers: environment.production?[GetNameServiceService]:[GetNameServiceService, {provide: HTTP_INTERCEPTORS,useClass: IBSInterceptor,multi: true}],
      bootstrap: [AppComponent]
    })
    

    在我的提供者中,我首先检查生产环境,然后提供提供者数组。我已经实施了拦截器方法来完成后端较少的开发,当环境是生产时,我不会注入我在非生产环境中拥有的提供者的完整列表。

    我检查 environment.production (这对于生产环境来说是真的,否则会是假的,因此我将有我想要运送到生产环境的代码。

    【讨论】:

    • 这是一个很好的方法,但是如果我这样捕获它仍然会导入模块?我更多地考虑了在应用程序实际运行之前使用 webpack 编译的方法,就像 npmjs.com/package/webpack-strip-block 所做的那样,它只是删除了 cmets 之间的任何内容。
    猜你喜欢
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 2019-12-02
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 1970-01-01
    相关资源
    最近更新 更多