【问题标题】:Is there a nice way to have different configurations for different environments?有没有一种好方法可以为不同的环境提供不同的配置?
【发布时间】:2014-06-30 03:21:32
【问题描述】:

我创建了一个需要一些配置的应用。我现在这样做的方式有点笨拙和乏味——如果我在本地开发,我会包含“本地”配置文件(一个定义一些 const 的 dart 文件),如果部署,我会包含一个不同的 dart定义具有不同值的相同常量的文件。

理想情况下,应该有一种方法来定义不同的配置,这些配置可以传递给 pub serve/build。这似乎是一个明显的需求,我觉得某些东西可能已经存在,只是我还没有遇到它。在那儿?还是正在开发中?

【问题讨论】:

标签: dart


【解决方案1】:

Pub build does not support defining environment variables,但你可以使用fromEnvironment method,例如,String

String.fromEnvironment(String name, {String defaultValue})

返回环境声明名称的字符串值。 环境声明由周边系统提供 编译或运行 Dart 程序。声明映射一个字符串键 到一个字符串值。

或者使用transformers 让它“更高级”。它将允许您自动(在 pub build 或 pub serve 上)从 pubspec.yaml 或其他来源获取设置并将它们嵌入到代码中。比如sass(是transformer)包支持这种形式的设置:

:::yaml
transformers:
  - sass:
      executable: /path/to/sass     # Sass executable to use
      compass: true                 # Include compass
      line-numbers: true            # Include line numbers in output
      style: compact                # Style of generated CSS
      copy-sources: true            # Copy original .scss/.sass files to output directory

有了它,你几乎可以做任何事情,包括修改源代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-09
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    • 1970-01-01
    • 2018-11-17
    相关资源
    最近更新 更多