如何使用build_runner在dart2中导入生成的源?

时间:2019-06-13 07:52:30

标签: dart angular-dart dart-2

我想创建一个Builder来动态创建Env类。该类应该可以在我的项目中的任何地方导入。它用作build.yml

中定义的环境常量的容器

Builder本身运行良好,可以生成所需的输出,但是当我运行

pub run build_runner build

构建失败并显示以下消息

  

[SEVERE] build_web_compilers:web / main.dart上的入口点:无法   查找某些来源的模块,这通常是由于   导入错误,包中缺少依赖项(或者可能是   dev_dependency需要移至实际依赖项,否则构建失败   (如果要导入生成的文件)。

     

请检查以下进口:

     

import '../.dart_tool/build/generated/buildertest/lib/environment.g.dart';   来自buildertest | web / main.dart,网址为2:1

     

[INFO]运行中的构建完成,花了4.1秒钟[INFO]缓存已完成   依赖图完成,花了450ms [SEVERE] 4.6s后失败

本身可以导入,因为当我按照以下代码片段运行时效果很好

import '../.dart_tool/build/generated/buildertest/lib/environment.g.dart';


void main() {

  print("Name:${Environment.name}");
  print("Endpoint:${Environment.endpoint}");
}

dart web/main.dar t

如何使导入有效?

这里是build.yaml

targets:
  $default:
    builders:
      angular_components|scss_builder:
        enabled: True
      env|builder:
        options:
          name: "default"
          endpoint: "http://example.org"
        enabled: true

builders:
  env|builder:
    import: "env/EnvBuilder.dart"
    builder_factories: ["builderFactory"]
    is_optional: false
    build_extensions:
      "$lib$": ["environment.g.dart"]
    auto_apply: root_package
    runs_before: ["build_test:test_bootstrap","build_modules:module_library","build_modules:dartdevc","build_web_compilers:ddc","build_modules:vm","build_modules:dart2js","build_web_compilers:entrypoint"]

0 个答案:

没有答案