根据部署的环境,允许我的Dart Web应用程序点击不同的服务器会很不错:
http://dev.myapp.com/someService
http://testing.myapp.com/someService
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,并且真正适用于任何特定于环境的属性。)
答案 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'];
}