【问题标题】:Pass custom parameters to a dart application when using pub serve to run it使用 pub serve 运行时将自定义参数传递给 dart 应用程序
【发布时间】:2014-01-18 22:59:58
【问题描述】:

是否可以在使用pub serve 运行 dart 应用程序时将一些参数传递给它?我想做的是让一个应用程序在我开发它时使用一些模拟服务,但是当它被部署时,我想用真实的服务替换模拟服务。例如:

const bool DEBUG = true;

class AppModule extends Module {
  AppModule() {
    type(PaymentService, implementedBy: DEBUG ? PaypalPaymentService : MockPaymentService );
  }
}

我希望这个 DEBUG 参数以某种方式来自环境,并且在使用 pub serve 运行应用程序时可以轻松配置。实现这一目标的最佳方法是什么?

【问题讨论】:

    标签: dart dart-pub


    【解决方案1】:

    您可以检查网址。如果 host127.0.0.1 你在开发环境中,否则它是 prod。

    另一个想法是使用一个转换器,当modedebug 时注入一些东西。 不确定这种方式是否真的可行。

    $ pub help serve
    Run a local web development server.
    
    Usage: pub serve
    -h, --help               Print usage information for this command.
        --port               The port to listen on.
                             (defaults to "8080")
    
        --[no-]dart2js       Compile Dart to JavaScript.
                             (defaults to on)
    
        --[no-]force-poll    Force the use of a polling filesystem watcher.
        --mode               Mode to run transformers in.
                             (defaults to "debug")
    

    【讨论】:

    • URL 不起作用,因为我可以在即使在 localhost 上使用真实服务的模式下运行应用程序。变形金刚可能有用,但我找不到如何编写变形金刚的例子。任何指针? pub 上的文档没有说明怎么写,只说明如何使用。
    • 最近有一个讨论,应该写一个文档如何构建一个transformer,但还没有看到。 (groups.google.com/a/dartlang.org/forum/#!topic/misc/d4jrnPzFV2w)
    • 另外,当我运行 pub serve 时,我将如何指定这是“生产”模式还是“调试”模式?我正在寻找类似pub serve --mode=debug 的东西。
    • 我将pub help serve 的输出添加到我的答案中。 --mode=debug 是默认值。
    • 哦...抱歉,我没有意识到 pub 已经有一个名为“mode”的标志。我正在寻找传递一个自定义标志(巧合的是我使用了已经存在的名称模式)。也许一个更好的例子是`pub serve --app_mode=debug'。我正在考虑在 html 中设置一个元标记,然后读取它来设置模式……然后我可以在部署过程中使用转换器来实际更改值,如果需要的话……
    猜你喜欢
    • 1970-01-01
    • 2011-04-17
    • 2015-02-12
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    相关资源
    最近更新 更多