1

如何忽略项目中的依赖项?

我的项目设置是:

项目 A:依赖于Angular2 &依赖于Foundation

项目基础:依赖Redstone_mapper_mongo

问题是我想在我的项目 A 中使用 angular2,这取决于我的项目基金会。然而,项目基金会使用红石映射器 mongo,但 angular2 和红石映射器 mongo 不能一起工作。

问题:

所以在我的基础上是这样的。我可以在项目 A 中以某种方式忽略这些@Field()、@NotEmpty 和导入吗?所以这个角度在项目A中工作得很好?因此,不应在项目 A 中加载红石映射器 mongo。但是我该怎么做呢?

import 'package:redstone_mapper/mapper.dart';

class Address {
  @Field()
  @NotEmpty()
  String street;

  @Field()
  @NotEmpty()
  String city;
}

[更新]

我现在在我的项目 A 中有这些依赖项。我添加了 code_transformers: ^0.5.1

项目 A pubspec.yaml

dependencies:
      angular: "^4.0.0+2"
      angular_forms: "^1.0.0"
      foundation:
         path: ../foundation
    dependency_overrides:
        code_transformers: ^0.5.1



    dev_dependencies:
      angular_test: ^1.0.0
      browser: ^0.10.0
      dart_to_js_script_rewriter: ^1.0.1
      test: ^0.12.30

    transformers:
    - angular:
        entry_points:
        - web/main.dart
        - test/**_test.dart
    - test/pub_serve:
        $include: test/**_test.dart
    - dart_to_js_script_rewriter

基金会 pubspec.yaml

dependencies:
  intl: "^0.15.2"
  http: "^0.11.3+16"
  great_circle_distance: "^1.0.1"
  redstone_mapper_mongo: "0.2.0-beta.1"
  jaguar_serializer: "^0.5.1"

dev_dependencies:
  browser: "^0.10.0+2"
  dart_to_js_script_rewriter: "^1.0.3"

transformers:
  - dart_to_js_script_rewriter
4

2 回答 2

2

在 Angular 项目中添加

dependency_overrides:
  code_transformers: ^0.5.1
  analyzer: 0.30.0+4

应该修复它

于 2018-03-06T11:58:15.900 回答
1

在基金会项目中,我添加了我自己的空实现的本地依赖项

redstone_mapper_mongo:
   path: ../redstone_mapper_mongo

在这个空实现中,Field 和 NotEmpty 注释只是被声明了。

library redstone_mapper;

class Field {
  const Field();
}

class NotEmpty {
  const NotEmpty();
}

像这样,现在项目 A 可以使用本地变体和 Angular2 没有任何问题。并且无需创建模型对象的第二个世界。

我在项目 B 中将dependency_overrides 与redstone_mapper_mongo 的真实版本一起使用,因此注释@Field 和@Empty 使用的是redstone_mapper_mongo 的真实实现。现在一切正常。

dependency_overrides:
   redstone_mapper_mongo: "0.2.0-beta.1" 
于 2018-03-07T07:54:45.357 回答