角度中的条件模块导入

角度中的条件模块导入

原文:https://medium.com/hackernoon/conditional-module-imports-in-angular-518294aa4cc

每当您向您的 Angular 应用程序引入第三方服务时,总会有这样的情况,您只需要那些服务用于开发、测试或生产。为了使您的构建尽可能的快速和小,您希望有条件地导入那些服务。

Photo by WEB AGENCY on Unsplash

最好的例子是:

  • 您正在使用 ngrx/store 和 ngrx/store-devtools 模块。您希望只在开发中使用 ngrx/store-devtools,并防止它被导入到生产中。
  • 您正在使用 logrocket 之类的生产日志服务,并且希望仅在生产时启动该服务,而不是在开发时。

由于启动日志服务是特定于您正在使用的服务的,所以我不会深入讨论。然而,您可以遵循与仅在开发中导入 ngrx/store-devtools 相同的模式。仅在开发中导入 ngrx/store-devtools 可以这样完成:

诀窍是

我们定义一个名为dev的数组,并在该数组中导入/配置我们的storeDevtoolsModule。然后我们使用NODE_ENV变量检查我们是否在生产中。如果我们在生产中,我们再次清除dev数组。使用 spread 操作符将这个dev数组导入到模块声明中。在数组中使用 spread 运算符时,它允许您轻松地将一个数组的扩展版本放入另一个数组中。下面的示例演示了这一点:

希望这个小技巧对你做条件模块导入有帮助。

感谢阅读。如果你喜欢这篇文章,请点击拍手按钮。有反馈吗?让我知道。也查看我的其他文章:

关注我上 推特 让我们连线上LinkedIn


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除