我创建了一个需要进行配置的应用。我现在这样做的方式有点愚蠢和乏味 - 如果我在本地开发,我会包括"本地"配置文件(定义一些consts的dart文件),如果部署,我包含一个不同的dart文件,用于定义具有不同值的相同consts。
理想情况下,可以使用一种方法来定义不同的配置,这些配置可以传递给pub serve / build。这似乎是一种显而易见的需求,我觉得某些东西可能已经存在,而我还没有碰到它。在那儿?或者是在起作用?
答案 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
有了它,你可以做很多事情,包括源代码修改。