有不同的方法可以针对不同的环境进行不同的配置吗?

时间:2014-06-30 03:21:33

标签: dart

我创建了一个需要进行配置的应用。我现在这样做的方式有点愚蠢和乏味 - 如果我在本地开发,我会包括"本地"配置文件(定义一些consts的dart文件),如果部署,我包含一个不同的dart文件,用于定义具有不同值的相同consts。

理想情况下,可以使用一种方法来定义不同的配置,这些配置可以传递给pub serve / build。这似乎是一种显而易见的需求,我觉得某些东西可能已经存在,而我还没有碰到它。在那儿?或者是在起作用?

1 个答案:

答案 0 :(得分:2)

Pub build does not support defining environment variables但您可以在String上使用fromEnvironment method

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

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

或者让它成为"发烧友"与transformers。它允许您自动(在pub构建或发布服务器上)从pubspec.yaml或其他来源获取设置并将它们嵌入到代码中。例如sass(它是变换器)包支持这种形式的设置:

:::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

有了它,你可以做很多事情,包括源代码修改。