Dart web app环境变量

时间:2013-12-27 17:40:46

标签: web-applications environment-variables dart system-properties deployment-descriptor

根据部署的环境,允许我的Dart Web应用程序点击不同的服务器会很不错:

  • DEV:http://dev.myapp.com/someService
  • 质量保证:http://testing.myapp.com/someService
  • LIVE:http://myapp.com/someService

在Java中,通常你有一个部署描述符(myapp.properties),应用程序读取运行时类路径,允许你在DEV上指定myapp.properties,如下所示:

service.url=dev.myapp.com/someService

就像QA一样:

service.url=qa.myapp/com/someService

等。看起来Dart提供的东西comparable 但是只有服务器端/命令行......

那么Dart Web开发人员如何实现同样的目标,您不需要将所有各种环境的服务器硬编码到应用程序中? (显然,这个问题扩展了超越服务URL,并且真正适用于任何特定于环境的属性。)

2 个答案:

答案 0 :(得分:5)

您可以使用String.fromEnvironment常量构造函数来获取传递给dart2js编译器的值。有关此新功能的完整说明,请查看Seth Ladd的博客文章:Compile-time dead code elimination with dart2js

答案 1 :(得分:2)

要保持相同的 build ,您可以从html读取一个可以在服务器端生成的变量。

例如,服务器可以使用:

生成(或用模板替换)html文件
<script>
  // var serviceUrl = "@VALUE_OF_VAR@";
  var serviceUrl = "dev.myapp.com/someService";
</script>

并在dart客户端文件中:

import 'dart:js' as js;
main() {
  var serviceUrl = js.context['serviceUrl'];
}