【问题标题】:Build-time value injection in DartDart 中的构建时值注入
【发布时间】:2018-08-18 11:02:03
【问题描述】:

我对 Dart 比较陌生,但我正在尝试使用 Dart 2 和 Angular 5 构建一个相当简单的 UI 来与 API 进行通信。我为自己设定的两个目标是

  1. API 托管在 App Engine 上,UI 托管在 Firebase 托管上,作为单独的模块;
  2. 这两个模块可以在我的本地开发机器上轻松使用,而无需在部署前修改代码。

为了实现这一点,我正在考虑使用 Maven 的属性注入或 Gradle 的 BuildConfigField 之类的东西在构建期间注入 API 主机,在开发中设置 http://localhost:8080,在生产中设置 https://api.example.com,但我找不到任何东西Dart/build_runner.

这在 Dart-Angular 中被认为是一种好的做法吗?如果是这样,我该如何实现?如果不是, 什么是好的做法?

【问题讨论】:

    标签: angular build dart development-environment


    【解决方案1】:

    听起来你正在寻找

    https://github.com/dart-lang/webdev/issues/73
    如果您使用webdev

    https://github.com/dart-lang/build/issues/1053 如果你使用pub run build_runner --config=dev ...

    您可以在build.dev.yaml 中为不同的配置配置不同的值

    来自https://github.com/dart-lang/build/issues/1053#issuecomment-368345014

    targets:
      runny:
        sources:
          exclude: ["lib/builder.dart"]
        builders:
          sass_builder|sass_builder:
            enabled: False
          angular_components|scss_builder:
            enabled: True
          build_web_compilers|entrypoint:
            generate_for:
            - web/main.dart
            options:
              compiler: dartdevc
              dart2js_args:
              - --define env=dev
    

    您可以使用读取值

    const currentEnv = String.fromEnvironment('env');
    

    https://docs.flutter.io/flutter/dart-core/String/String.fromEnvironment.html

    【讨论】:

    • 所以现在,我猜它基本上是你自己的。不过,我会密切关注您链接的 webdev 问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 2020-11-28
    • 2019-10-16
    • 2013-04-11
    相关资源
    最近更新 更多