4

允许我的 Dart Web 应用程序根据部署的环境访问不同的服务器会很好:

  • 开发:http://dev.myapp.com/someService
  • 质量保证:http://testing.myapp.com/someService
  • 居住:http://myapp.com/someService

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

service.url=dev.myapp.com/someService

在像这样的质量检查中:

service.url=qa.myapp/com/someService

等等。看起来 Dart 提供了类似 的东西,但是它的服务器端/命令行仅...

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

4

2 回答 2

5

您可以使用String.fromEnvironment常量构造函数来获取传递给 dart2js 编译器的值。有关此新功能的完整说明,请查看 Seth Ladd 的博客文章:使用 dart2js 消除编译时死代码

于 2013-12-27T17:49:44.030 回答
2

为了保持相同的构建,您可以从 html 中读取一个可以在服务器端生成的变量。

例如,服务器可以生成(或用模板替换)html文件:

<script>
  // var serviceUrl = "@VALUE_OF_VAR@";
  var serviceUrl = "dev.myapp.com/someService";
</script>

在飞镖客户端文件中:

import 'dart:js' as js;
main() {
  var serviceUrl = js.context['serviceUrl'];
}
于 2013-12-27T21:12:52.957 回答